Data structure visualization and management for real-time data

ABSTRACT

Techniques and architectures for managing one or more data structures and/or distributing real-time data associated with the one or more data structures are discussed herein. For example, the techniques and architectures may implement data structures to manage data associated with one or more data-streaming events. The techniques and architectures may provide visualizations to view aspects of the data structures, the one or more data-streaming events, and/or other data associated with the data structures. The techniques and architectures may also facilitate control access to the data structures and/or data associated therewith.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of U.S. patent applicationSer. No. 15/909,455, filed Mar. 1, 2018 and entitled “ElectronicCalendar Devices,” which is a continuation-in-part of U.S. patentapplication Ser. No. 14/995,200, filed on Jan. 14, 2016, entitled“Electronic Calendar Devices,” which claims priority to U.S. ProvisionalPatent Application No. 62/103,508, filed on Jan. 14, 2015, entitled“Electronic Calendar Management.” U.S. patent application Ser. No.15/909,455 claims priority to U.S. Provisional Application No.62/465,244, filed on Mar. 1, 2017 and entitled “Electronic CalendarDevices.” The entire contents of all of these applications areincorporated herein by reference.

Further, this application claims priority to U.S. Provisional PatentApplication No. 62/992,803, filed Mar. 20, 2020 and entitled “DataStructure Visualization and Management for Real-Time Data,” the entirecontents of which are incorporated herein by reference.

BACKGROUND Field

The present disclosure relates to the field of data management and userinterfaces.

Description of the Related Art

Data may be provided to one or more remote devices over a network in alive manner. However, it is difficult to manage such data due to thetime constraints associated with distributing the data. For example,data distribution may consume substantial computing, storage, and/ornetwork resources, resulting in delays, resources issues, and so on. Asmore users consume data and the data increases in size, the difficultyin managing and distributing such data increases. Furthermore, it isoften difficult to understand the underlying format or structure inwhich data is represented.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments are depicted in the accompanying drawings forillustrative purposes and should in no way be interpreted as limitingthe scope of the disclosure. In addition, various features of differentdisclosed embodiments can be combined to form additional embodiments,which are part of this disclosure. Various reference numbers are used inthe drawings and this disclosure, wherein the same reference number maycorrespond to the same or a different item/element/feature. Thereference numbers should generally be interpreted in view of the contentof the detailed description. For example, a reference number that isdescribed in the detailed description in the context of one figureshould generally be interpreted as referring to the item/element in thatfigure. In some embodiments, the same reference number may be used indifferent figures to refer to different items/elements/features.

FIG. 1 illustrates an example architecture in which the techniquesdescribed herein may be implemented.

FIG. 2 illustrates additional example details of the service provider ofFIG. 1 according to one or more embodiments.

FIG. 3 illustrates details of an example user device according to one ormore embodiments.

FIGS. 4-1 through 4-4 illustrates example data flow diagrams showingcertain data transmissions and/or processes for devices of a systemaccording to one or more embodiments.

FIGS. 5-1 through 5-7 illustrate examples interfaces that may bepresented via a content creation device to manage a data structureassociated with a content creator according to one or more embodiments.

FIGS. 6-1 through 6-9 illustrate examples interfaces that may bepresented via a content consumption device to acquire and/or view dataassociated with a data structure according to one or more embodiments.

FIGS. 7A and 7B are block diagrams of calendar management systems inaccordance with one or more embodiments disclosed herein.

FIG. 8 is a block diagram providing a representation of a host server inaccordance with one or more embodiments.

FIG. 9 is a block diagram providing a representation of a client deviceaccording to one or more embodiments.

FIG. 10 is a block diagram illustrating a calendar data managementsystem according to one or more embodiments.

FIG. 11 is a flow diagram illustrating a process for the creation andpublishing of a Share ID associated with a calendar, calendar event,and/or group of calendar events by a calendar scheduler according to oneor more embodiments.

FIG. 12 is a flow diagram illustrating a process for storing and/ordistributing calendar data by a host server according to one or moreembodiments.

FIG. 13 is a flow diagram illustrating a process for the use of a ShareID by a calendar user associate one or more calendars to a client deviceaccording to one or more embodiments.

FIG. 14 is a flow diagram illustrating a process for the refresh ofcalendar information on multiple devices by an event trigger,notification and update according to one or more embodiments.

FIG. 15 is an entity-relationship diagram illustrating a conceptualmodelling the relationship amongst calendar, events, tasks, and membersentities according to one or more embodiments.

FIG. 16 is a diagram illustrating an example graphical user interface(GUI) according to one or more embodiments.

FIG. 17 is a diagram illustrating an example GUI according to one ormore embodiments.

FIG. 18 is a diagram illustrating an example GUI according to one ormore embodiments.

FIG. 19 is a diagram illustrating an example GUI according to one ormore embodiments.

FIG. 20 is a diagram illustrating an example GUI according to one ormore embodiments.

FIG. 21 is a diagram illustrating an example GUI according to one ormore embodiments.

FIG. 22 is a diagram illustrating an example GUI according to one ormore embodiments.

FIG. 23 is a diagram illustrating an example GUI according to one ormore embodiments.

DETAILED DESCRIPTION

The headings provided herein are for convenience only and do notnecessarily affect the scope or meaning of the claimed subject matter.Although certain embodiments and examples are disclosed below, thesubject matter extends beyond the specifically disclosed embodiments toother alternative embodiments and/or uses, and to modifications andequivalents thereof. Thus, the scope of the claims that may ariseherefrom is not limited by any of the particular embodiments describedbelow. For example, in any method or process disclosed herein, the actsor operations of the method or process may be performed in any suitablesequence and are not necessarily limited to any particular disclosedsequence. Various operations may be described as multiple discreteoperations in turn, in a manner that may be helpful in understandingcertain embodiments; however, the order of description should not beconstrued to imply that these operations are order dependent.Additionally, the structures, systems, and/or devices described hereinmay be embodied as integrated components or as separate components. Forpurposes of comparing various embodiments, certain aspects andadvantages of these embodiments are described. Not necessarily all suchaspects or advantages are achieved by any particular embodiment. Thus,for example, various embodiments may be carried out in a manner thatachieves or optimizes one advantage or group of advantages as taughtherein without necessarily achieving other aspects or advantages as mayalso be taught or suggested herein.

As noted above, real-time data is difficult to manage and/or distribute.As more users consume data and data sizes increase, data distributionmay consume more computing, storage, and/or network resources.Furthermore, it is often difficult to understand the underlying formator structure in which data is represented.

The present disclosure relates to techniques and architectures formanaging one or more data structures and distributing real-time dataassociated with the one or more data structures. For example, thetechniques and architectures may implement data structures to managedata associated with one or more data-streaming events. The techniquesand architectures may provide visualizations to view aspects of the datastructures, the one or more data-streaming events, and/or other dataassociated with the data structures. The techniques and architecturesmay also facilitate control access to the data structures and/or dataassociated therewith. In some embodiments, a first type of userinterface may be provided to a content creator to view informationregarding a data structure associated with the content creator, createevent object data for storage within the data structure, generatereal-time data to associate with the event object data, and so on.Further, a second type of user interface may be provided to a contentconsumer to view information regarding a data structure of a contentcreator, view information regarding a data structure of the contentconsumer, acquire access rights to real-time data associated with a datastructure, and so on. In some embodiments, a plurality of datastructures may be managed for multiple content creators, enabling datato be distributed to remote devices associated with content consumers inreal-time as the data is being created by the content creators.

The techniques and architectures discussed herein may efficiently manageand/or distribute data (including real-time data). For example, data maybe associated with a data structure in the form of object data to manageinformation regarding a data-streaming event and/or distribute real-timedata associated with the data-streaming event. By doing so, computing,storage, and/or network resources may be conserved/reduced (e.g., incomparison to other techniques). In examples, the techniques andarchitectures discussed herein may avoid/reduce delays in distributingreal-time data between multiple content creators and multiple contentconsumers, which may be located remotely to the content creators overone or more networks. Furthermore, the techniques and architectures mayprovide visualizations regarding data associated with a data structure,such to depict aspects of a data structure, view real-time data, and soon.

FIG. 1 illustrates an example architecture 100 in which the techniquesdescribed herein may be implemented. The architecture 100 includes aservice provider 102 configured to manage one or more data structures,provide visualizations regarding the one or more data structures,distribute real-time data associated with the one or more datastructures, and/or perform a variety of other operations. Thearchitecture 100 may also include one or more devices 104 and/or one ormore devices 106 that are each configured to communicate with theservice provider 102 and/or each other over one or more networks. Eachof the one or more devices 104 and/or the one or more devices 106 may beassociated with a user. For ease of discussion, the one or more devices104 may be referred to as “the content creation device 104” with anassociated an user referred to as a “content creator,” while the one ormore devices 106 may be referred to as “the content consumption device106” with an associated user referred to as a “content consumer.”However, a content creation device may in some cases be a contentconsumption device, or vice versa.

A data structure may include a storage component configured toorganize/store data in a particular manner/format. For example, a datastructure may include a plurality of data slots (also referred to as“blocks”), with each of the data slots being configured to store or tobe associated with the same or different types of data, such as the sameor different object data, values, variables, and so on. In someembodiments, a data slot is associated with a time period, such as amonth, a week, a day, an hour, a block of hours, a minute/second, ablock of minutes/seconds, etc. Such data structure may be referred to as“a time-based data structure.” A data structure may include and/orrepresent an array, a list, a record, an object, a node graph, acollection of nodes, and so on. In some embodiments, a data structuremay include one or more additional data structures and/or object dataincluded/embedded therein, such as a data structure that includesanother data structure in a data slot.

Object data may refer to data or a data structure having one or moreparameters and/or one or more values associated with the one or moreparameters. A parameter may include any identifier/indicator used toidentify data, while a value may include data that may be associatedwith a parameter (e.g., data of the same type as the parameter). In someembodiments, object data may include or represent data associated withan event, such as a data-streaming event, a non-data-streaming event, orany other event.

In some embodiments, a data structure includes/represents a calendarand/or object data includes/represents data for an event/item of thecalendar. To illustrate, a data structure may include/represent acalendar with each data slot representing a period of time (e.g., anhour, a day, a week, a block of hours/minutes/seconds, etc.). Here, eachdata slot may include/store object data for an event/item of thecalendar, such as a data-streaming event, a non-data-streaming event, oranother event.

The service provider 102 may include a data structure component 108, avisualization component 110, an acquisition component 112, and/or areal-time data component 114 to facilitate various functionalitydiscussed herein. For example, the data structure component 108 may beconfigured to manage one or more data structures, the visualizationcomponent 110 may be configured to provide visual representationsregarding one or more data structures and/or other data, the acquisitioncomponent 112 may be configured to manage access and/or acquisition ofreal-time data and/or other data, and/or the real-time data component114 may be configured to distribute real-time data from a contentcreation source to one or more devices over a network. In someembodiments, the data structure component 108, the visualizationcomponent 110, the acquisition component 112, and/or the real-time datacomponent 114 may be configured to operate in cooperation and/orexchange data to facilitate operations.

The data structure component 108 may be configured to create one or moredata structures, associate the one or more data structures with one ormore content creators and/or content consumers, create/associate datawith the one or more data structures, and so on. For example, a contentcreator may provide input via the device 104 (which may be via avisualization interface) requesting that a data structure be generated.In response, the data structure component 108 may generate the datastructure 116 and associate the data structure 116 with the contentcreator and/or the device 104. Additionally, or alternatively, thecontent creator may provide input via the device 104 regarding anevent/item (which may be provided via a visualization interface). Theinput may include one or more data values 118 regarding the event/item,which may be sent to the service provider 102. The data structurecomponent 108 may generate object data 120 and associate/store the oneor more data values 118 in one or more value fields of the object data120. The object data 120 may be associated with/stored in a data slotspecified by the input (e.g., a data slot for a time period specified bythe content creator). The content creator may provide input to createobject data for any number of data slots.

In the example of FIG. 1, the data structure 116 is filled/associatedwith three different types of data, including a first type of data, asecond type of data, and real-time data. That is, each data slot maystore or be associated with object data of a particular data type. Asshown, the object data 120 is of a real-time data type indicating thatthe object data 120 is or may be associated with real-time data, asdiscussed in further detail below. Here, the object data 120 isassociated with a data slot for “Time Period 4.” However, any number ofdifferent data types (e.g., types of object data) may beincluded/associated with the data structure 116. Further, any data slotmay be associated with any type of data. In some embodiments, the datastructure component 108 may receive one or more data values for an eventand analyze the one or more data values to determine a type of objectdata to create for an event/item.

The real-time data component 114 may be configured to associatereal-time data with a data structure and/or distribute the real-timedata. For example, the content creation device 104 may be configured togenerate real-time data 122 for an event/item and send the real-timedata 122 to the service provider 102 along with an identifier 124, suchas an identifier identifying the event/item, object data associated withthe event/item, and so on. The real-time data component 114 may use theidentifier 124 to associate the real-time data 122 with the appropriatedata structure and/or object data. For example, the real-time datacomponent 114 may determine that the object data 120 includes the sameidentifier as that sent with the real-time data 122. Based on suchdetermination, the real-time data 122 may be stored/associated with theobject data 120.

The real-time data component 114 may also be configured to distributereal-time data. For example, upon determining that the real-time data122 is associated with the object data 120, the real-time data component114 may determine one or more content consumers that are associated withthe object data 120. The real-time data component 114 may determine acontent consumption device for a content consumer and send the real-timedata 122 to the content consumption device. In some embodiments, thereal-time data 122 is queued for the content consumer and sent to thecontent consumption device when requested by the content consumptiondevice. In the example of FIG. 1, the content consumption device 106 isassociated with the object data 120 (e.g., has acquired access to thereal-time data 122 via the acquisition component 112, as discussedbelow). As such, the real-time data 122 is provided to the contentconsumption device 106 (with or without the identifier 124).

In some embodiments, the real-time data component 114 may operate incooperation with one or more other service providers (not illustrated inFIG. 1) to facilitate real-time distribution of data to one or moredevices over a network. For example, the real-time data component 114may instruct another service provider to communicate directly with acontent creation device and/or a content consumption device. The otherservice provider may cause real-time data to be distributed from acontent creation device to one or more content consumption devices. Inexamples, once the other service provider has been notified tofacilitate distribution of the real-time data, the service provider 102may not be directly involved in the process. Further, in someembodiments, functions of the real-time data component 114 may beentirely (or partially) implemented by another service provider, whichmay be associated with a different entity than the service provider 102.As such, the real-time data component 114 may be implemented partiallyor entirely by another service provider.

In some embodiments, real-time data may refer to data that is configuredto be distributed in real-time (i.e., a live manner). For example,real-time data may refer to data that is received and distributed to oneor more devices over a network as soon as the data is received. Inexamples, real-time data may be subjected to some processing, which mayoccur in a relatively quick manner (e.g., taking less than a thresholdamount of time) to avoid delays. In some embodiments, real-time data maybe stored for later presentation, such as in an on-demand manner.

The acquisition component 112 may be configured to control access todata associated with the service provider 102. For example, theacquisition component 112 may limit access to real-time data associatedwith a data structure to devices/users that have acquired access rights.A device/user may gain access rights by submitting value (e.g.,purchasing an event/item) and/or otherwise satisfying one or moreauthorization criteria. To illustrate, a content consumer may use thecontent consumption device 106 to request access to real-time data thatmay be associated with the object data 120 (e.g., in the future). Thecontent consumption device 106 may send a data access request 126 to theservice provider 102, specifically the acquisition component 112. Thedata access request 126 may include information to acquire or authorizeacquisition of an event/item. The information may include transactiondata to facilitate a financial transaction. The acquisition component112 may perform an authorization process to determine if the contentconsumer is authorized to make such acquisition. The authorizationprocess may include communicating with one or more other serviceproviders, such as one or more bank processing services. If authorized,the acquisition component 112 may associate the content consumer and/orthe content consumption device 106 with the object data 120. Forexample, a user/device identifier identifying the content consumer/thecontent consumption device 106 may be stored/associated with the objectdata 120. Thereafter, when real-time data is associated with the objectdata 120, the real-time data may be provided to the contentconsumer/content consumption device 106. In the example of FIG. 1, thereal-time data 122 is associated with the object data 120 as thereal-time data 122 is being received from the content creation device104. As such, the real-time data 122 may be provided to the contentconsumption device 106 (e.g., in a streaming manner as the real-timedata 122 is received).

The visualization component 110 may be configured to provide visualrepresentations regarding data associated with the service provider 102.For example, the visualization component 110 may retrieve raw data 128from the data structure component 108, such as raw data associated witha data structure and/or object data. Based on such data, thevisualization component 110 may generate user interface data 130, 132,which may represent a user interface (e.g., a visualization interface),one or more visual representations for elements of the user interface,one or more visual representations for elements of a datastructure/object data, and so on. The user interface data 130, 132 maybe provided to the content creation device 104 and/or the contentconsumption device 106 to view/manipulate/update various aspects of dataassociated with a data structure and/or object data. For example, thevisualization component 110 may send the user interface data 130 to thecontent creation device 104 to visualize one or more aspects of a datastructure (via an interface 134) and/or to facilitate capturing ofreal-time data (via an interface 136). Additionally, or alternatively,the visualization component 110 may send the user interface data 132 tothe consumer device 106 to visualize one or more aspects of a datastructure (via an interface 138) and/or to view real-time data (via aninterface 140). In some embodiments, the visualization component 110 mayenable raw data and/or other forms of data to be visualized in anefficient manner to understand data structures, object data, and/orother elements, which may be relatively complex in some examples.

The service provider 102, the device 104, and/or the device 106 may beconfigured to communicate with each other over one or more networks. Forexample, the service provider 102, the device 104, and/or the device 106may send/receive data in a wireless and/or wired manner over one or morenetworks. The one or more networks may comprise one or more personalarea networks (PANs), one or more local area networks (LANs), one ormore wide area networks (WANs), one or more Internet area networks(LANs), one or more cellular networks, the Internet, and so on. The oneor more networks may include one or more wireless and/or one or morewired networks. In some embodiments, the service provider 102, thedevice 104, and/or the device 106 may implement a wireless technology,such as Bluetooth, Wi-Fi, near-field communication (NFC), or the like.

A content creator may refer to any individual associated with generatingdata. For example, a content creator may refer to an artist, celebrity,producer, influencer, comedian, athlete, writer, fitness professional,organization, racing team, politician, promoter, agent, president/leaderof an organization, or any another user that may use a device to capturecontent and/or to be represented within content. Content may includeimage-based data (e.g., still images, video images, etc.), audio data,3-Dimensional (3D) data, depth data (e.g., data indicative of distancesfrom an imaging device), etc. In some embodiments, a content creator mayrefer to an individual that desires to market content. In examples,reference to a content creator may refer to a content creator directlyand/or a user associated with the content creator, such as a cameracrew, an assistant, and so on. In some embodiments, a content creatormay assign/designate an administrator (e.g., a publicist, a promoter, anagent, a manager, an assistant, etc.) to manage a data structure/accountassociated with the content creator.

A content consumer may refer to any individual that consumes data. Forexample, a content consumer may refer to a user that views, listens to,or otherwise consumes data generated by a content creator. In someembodiments, a content consumer refers to a fan of a content creator,such as a user that follows a content creator. Further, in someembodiments, a content creator may also be a content consumer, or viceversa.

FIG. 2 illustrates additional example details of the service provider102 of FIG. 1 according to one or more embodiments. The service provider102 may be implemented as one or more computing devices, such as one ormore servers, one or more desktop computers, one or more laptopscomputers, or any other type of device configured to process data. Insome embodiments, the one or more computing devices are configured in acluster, data center, cloud computing environment, or a combinationthereof. In some embodiments, the one or more computing devices of theservice provider 102 are implemented as a remote computing resource thatis located remotely to a content consumption device and/or contentcreation device. In other embodiments, the one or more computing devicesof the service provider 102 are implemented as local resources that arelocated locally at a content consumption device and/or content creationdevice. As illustrated, the service provider 102 may include controlcircuitry 202, data storage 204, one or more network interfaces 206, thedata structure component 108, the visualization component 110, theacquisition component 112, and the real-time data component 114. Thevarious components of the service provider 102 may be electricallyand/or communicatively coupled using certain connectivitycircuitry/devices/features, which may or may not be part of the controlcircuitry 202.

The control circuitry 202 may include one or more processors, such asone or more central processing units (CPUs), one or moremicroprocessors, one or more graphics processing units (GPUs), one ormore digital signal processors (DSPs), and/or other processingcircuitry. Alternatively, or additionally, the control circuitry 202 mayinclude one or more application specific integrated circuits (ASIC), oneor more field-programmable gate arrays (FPGAs), one or moreprogram-specific standard products (ASSPs), one or more complexprogrammable logic devices (CPLDs), and/or the like. The controlcircuitry 202 may be configured to execute one or more instructionsstored in the data storage 204 to thereby perform one or more operationsto implement various functionality discussed herein. The controlcircuitry 202 may operate in cooperation with any of the components ofthe service provider 102 to facilitate such functionality.

The data storage 204 can include any suitable or desirable type ofcomputer-readable media. For example, computer-readable media caninclude one or more volatile data storage devices, non-volatile datastorage devices, removable data storage devices, and/or nonremovabledata storage devices implemented using any technology, layout, and/ordata structure(s)/protocol, including any suitable or desirablecomputer-readable instructions, data structures, program modules, orother types of data. Computer-readable media that may be implemented inaccordance with embodiments of the present disclosure includes, but isnot limited to, phase change memory, static random-access memory (SRAM),dynamic random-access memory (DRAM), other types of random access memory(RAM), read-only memory (ROM), electrically erasable programmableread-only memory (EEPROM), flash memory or other memory technology,compact disk read-only memory (CD-ROM), digital versatile disks (DVD) orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other non-transitorymedium that can be used to store information for access by a computingdevice. As used in certain contexts herein, computer-readable media maynot generally include communication media, such as modulated datasignals and carrier waves. As such, computer-readable media shouldgenerally be understood to refer to non-transitory media. In examples,the data storage 204 may store one or more instructions that areexecutable by the control circuitry 202 to facilitate variousfunctionality discussed herein.

In some embodiments, the data structure component 108, the visualizationcomponent 110, the acquisition component 112, and/or the real-time datacomponent 114 may be implemented as one or more instructions stored inthe data storage 204, which are configured to be executed by the controlcircuitry 202 to perform various operations discussed herein. Further,in some embodiments, the data structure component 108, the visualizationcomponent 110, the acquisition component 112, and/or the real-time datacomponent 114 may be implemented as one or more application specificintegrated circuits (ASIC), one or more field-programmable gate arrays(FPGAs), one or more program-specific standard products (ASSPs), one ormore complex programmable logic devices (CPLDs), and/or the like. Forease of discussion, the data structure component 108, the visualizationcomponent 110, the acquisition component 112, and the real-time datacomponent 114 are illustrated as separate components. However, it shouldbe understood that such components may be implemented as any number ofcomponents to implement the functionality discussed herein (e.g.,combined or separated into additional components). In some embodiments,the data structure component 108, the visualization component 110, theacquisition component 112, and/or the real-time data component 114 areconfigured to store data in the data storage 204.

The one or more network interfaces 206 may be configured to communicatewith one or more devices over a communication network. For example, theone or more network interfaces 206 may send/receive data in a wirelessor wired manner over a network. A communication network can include alocal area network (LAN), a wide area network (WAN) (e.g., theInternet), a personal area network (PAN), a body area network (BAN),etc. In some embodiments, the one or more network interfaces 206 mayimplement a wireless technology such as Bluetooth, Wi-Fi, near fieldcommunication (NFC), or the like. In some embodiments, the one or morenetwork interfaces 206 may include a transceiver (e.g., transceivercircuitry embodied in one or more devices) configured totransmit/receive signals wirelessly.

The data structure component 108 may be configured to manage one or morea plurality of data structures 208(1)-208(N), where “N” represents anumber greater than “1.” As illustrated, each data structure maystore/associate with object data. For example, the data structure 208(1)may include one or more of object data 210(1)-210(P) and the datastructure 208 (N) may include one or more of object data 212(1)-212(Q),where “P” and “Q” each represent a number greater than “1.” Each objectdata may include one or more parameters and/or one or more valuesassociated with the one or more parameters, respectively, as shown inFIG. 2. Each parameter may store a value (also referred to as “valuedata”).

Non-limiting example values (which may be associated with acorresponding parameter) include:

-   -   a date/time value indicating of a date and/or time of an        event/item (including a start and/or end time of the        event/item);    -   a name value indicating of a name of an event/item;    -   an event/object type value indicating a type of the object data        (e.g., the object data is associated with a data-streaming        event/item, a non-data-streaming event/item, any other type of        event/item);    -   an acquisition value indicating a value needed to acquire access        rights to an event/item (e.g., a price for acquiring access        rights to real-time data that may be associated with the object        data);    -   an owner identifier identifying a user that created a data        structure/object data (e.g., a content creator identifier        identifying a content creator that created the object data/data        structure);    -   an access value indicating one or more users that have acquired        access rights to an event/item (e.g., a list of content consumer        identifiers identifying content consumers that have acquired        access to real-time data associated with the object data);    -   a subscription value indicating one or more users that have        subscribed to receive updates regarding a data structure (e.g.,        a list of content consumer identifiers identifying content        consumers that have followed (or otherwise signed-up to receive        updates to) a data structure);    -   a link indicating a website associated with the object data        (e.g., a web address associated with an event/item);    -   an event/item/object data identifier identifying an event/item        and/or object data associated with the event/item (e.g., which        may be used to associate real-time data with the object data);    -   a location value indicating a location of an event/item;    -   a real-time data identifier identifying real-time data        associated with object data;    -   a data structure identifier identifying an associated data        structure for object data;    -   a share identifier for a data structure and/or object data        (which may be provided to a content consumer and/or content        creator to enable access to the data structure and/or the object        data);    -   a media data value that may include one or more media items        associated with object data (e.g., images, videos, conversation        data, etc., that may generally be associated with object data        before an event occurs); and/or    -   a comment value that may include one or more comments/notes        regarding an event.

The data structure component 108 may be configured to manage a datastructure and/or object data for a content creator and/or a contentconsumer. As one example, a content creator may create a data structurefor one or more events associated with the content creator. The contentcreator may make the data structure available for access to any numberof content consumers. The data structure component 108 may operate incooperation with the visualization component 110 to provide userinterface data regarding one or more events to a content consumer. Asanother example, a content consumer may create a data structure tomanage one or more events/items associated with the content consumer. Insome embodiments, object data associated with a first data structure maybe associated with a second data structure. For example, a contentconsumer may associate object data for an event of a content creatorwith a data structure associated with the content consumer. In someembodiments, the service provider 102 may implement one or more datastructures to efficiently manage data for a plurality of contentcreators and/or a plurality of content consumers. For example, theservice provider 102 may manage relatively large amounts of data and/orrelatively complex pieces of data through use of data structures.

In some embodiments, the real-time data component 114 may associatereal-time data 214 with one or more of the data structures 208 and/orthe object data 210, 212. For example, the real-time data component 114may receive real-time data and an identifier for an event from a contentcreator. The real-time data component 114 may operate in cooperationwith the data structure component 108 to select, based on theidentifier, object data with which to associate with the real-time data.To illustrate, real-time data may be associated with specific objectdata when an identifier provided with the real-time data (e.g., a uniqueidentifier indicative of an event/item) is matched to an identifierassociated with the object data (e.g., a unique identifier indicative ofthe same event/item). In examples, real-time data may be associated witha data structure and/or object data as the real-time data is beingreceived and/or distributed to one or more devices by the real-time datacomponent 114.

In some embodiments, the data structure component 108 and/or thevisualization component 110 may provide a notification regarding a datastructure. For example, a content consumer (and/or a content creator)may subscribe to receive notifications regarding changes to a datastructure. If the data structure component 108 detects that new objectdata is created for the data structure, the visualization component 110may provide a notification to the content consumer, which may includeone or more visualizations regarding the new object data. The one ormore visualizations may be indicative of one or more parameters and/orone or more values associated with the new object data.

The visualization component 110 may be configured to provide one or moreinterfaces/interface elements related to one or more data structuresand/or object data. For example, the visualization component 110 maygenerate user interface data for a user interface that enables a user tocreate a data structure and/or object data for the data structure.Additionally, or alternatively, the visualization component 110 maygenerate user interface data for a user interface that enables a user toview information regarding a data structure and/or object data for thedata structure. In some embodiments the visualization component 110 maygenerate different user interface data for different types of users,such as a first type of user interface data for content creators and asecond type of user interface data for content consumers. This mayenable the service provider 102 to control access to data associatedwith the service provider 102.

In some embodiments, user interface data may include data representingone or more visual representations for a data structure. For example,the visualization component 110 may convert data from one or more of thedata structures 208 (including the object data 210, 212) into one ormore graphical user interface elements. A graphical user interfaceelement may include an icon, a window, a control/widget, a graph, a tab,a menu, a menu bar, a pointer, an animation, text, an image, audio, andso on. In examples, a graphical user interface element may allowrelatively complex data of a data structure/object data to be presentedin an understandable format, such as a displayable format that isviewable by a content consumer and/or a content creator.

In some embodiments, the service provider 102 may be configured togenerate metric data 216 regarding one or more data structures and/orreal-time data. For example, the data structure component 108 and/or theacquisition component 108 may analyze the plurality of data structures208 and/or transaction data over time to determine metrics, includingtimes/dates when data structures/object data are created, times/dates ofevents, times/dates of real-time data, data sizes of real-time data,times/dates when real-time data is distributed, availabilitytimes/dates, acquisition values (e.g. prices for accessing data), and soon. The data structure component 108 and/or the acquisition component108 may generate the metric data 216 indicative of such metrics, whichmay be made available to a content creator and/or a content consumerusing the visualization component 110. As one example, the datastructure component 108 may analyze data structures to identify a dataslot/time period that is most available across content consumers andprovide a notification to a content creator indicative of the dataslots/time period (e.g., as a suggested time period to schedule anevent). The content creator may use such information to schedule anevent for the time slot/time period. As another example, the acquisitioncomponent 112 may analyze transaction data regarding acquisitions ofdata associated with events (e.g., data regarding a financialtransaction, which may identify a price, a financial instrument used forthe transaction, a bank, an account, the date/time of the transaction,and so on) to identify a collective acquisition value for a particularevent and/or multiple events associated with a content creator. Theservice provider 102 may provide a notification indicative of thecollective acquisition value.

In some embodiments, the real-time data component 114 may be configuredto facilitate feedback data 218 regarding real-time data. For example,the visualization component 110 may be configured to provide a userinterface to display real-time data to a content consumer and/or receivefeedback regarding the real-time data. The content consumer may providefeedback via a user interface to indicate how the real-time data isbeing received by the content consumer. For instance, a user may provideinput/select a thumbs-up, thumbs down, rating, ranking, score, and soon, for real-time data that is being viewed by the user. Such feedbackmay be stored as the feedback data 218.

In some embodiments, the feedback data 218 may be provided to a contentcreator (and/or a content consumer) to inform the content creator of howreal-time data is received. In examples, the feedback data 218 may beprovided in substantially real-time, so that the content creator mayview feedback while the real-time data is being distributed by thecontent creator. Alternatively, or additionally, the feedback data 218may be provided at a different time. In some embodiments, the real-timedata component 114 may determine a time during real-time data that isassociated with a particular amount of positive/negative feedback, suchas a period of time when the most positive/negative feedback isreceived, a period of time that has more than a threshold ofpositive/negative feedback, and so on. Such information may be storedwith or associated with the feedback data 218 and/or provided to acontent creator/content consumer. In some embodiments, the feedback data218 may indicate an average feedback over a period of time, such as overthe last number of minutes.

In some embodiments, the real-time data component 114 may provideinformation to facilitate real-time data capture using one or moreimaging devices. For example, a content creator may desire to broadcastan event using one or more camera systems (e.g., professional camerasystems, which may include an encoder). To enable such set up, thereal-time data component 114 may generate information for the one ormore camera systems to use to associate data captured by the one or morecamera systems with the event, such as an encryption key (which may beentered into a camera system), a website for distributing the capturedata, one or more credentials, and so on. In examples, a content creatormay interface with the service provider 102 to view the information thatmay be used for the one or more camera systems. Further, in examples,the one or more camera systems may be connected to a content creationdevice and the information may be provided directly to the one or morecamera systems.

In some embodiments, the service provider 102 may enable a contentcreator to distribute content to a select group of content consumers.For example, a content creator may record a video and select a group ofcontent consumers to receive the video. The service provider 102 mayprovide a user interface to record the video and/or select the group ofcontent consumers (e.g., which may include search functionality,drop-down menus, or other elements to designate a particular group ofcontent consumers, such as content consumers that are following thecontent creator or other types of content consumers). The serviceprovider 102 may distribute the video to the group of content consumers.The video may be viewed through content consumption devices associatedwith the content consumers, such as by being notified in a notificationsection and/or viewing the video through an interface on thecontent-consumer side. In examples, content consumers may providefeedback data regarding the video.

In some embodiments, the service provider 102 may manage an account forone or more content consumers and/or content creators. For example, theservice provider 102 may manage funds, digital currency, rewards,points, etc. A content consumer may earn value for an account byperforming certain actions/behaviors, such as purchasing access to anevent, saving an event, following a content creator, and so on. Acontent consumer may use value in an account with the service provider102 to acquire access to an event, reduce a value required to acquireaccess to an event, and so on. In examples, a content consumer may sharevalue in an account with another content consumer.

In some embodiments, the service provider 102 may perform a verificationprocess to determine an identity of a content creator or another user.For example, the service provider 102 may require an identity of acontent creator to be verified before the content creator can create anaccount with the service provider 102 (e.g., register with the system).To do so, a content creator may be required to provide a video orstill-image of his or herself (e.g., a video that represents a face ofthe content creator) and/or input a unique code (e.g., PIN) through aninterface. The unique code may have been sent to the content creatorseparately. To illustrate, the content creator may be required to saytheir name and provide a unique code while recording a video. Inexamples, the service provider 102 may present the video or still-imageto a user/administrator for visual verification of the identity of thecontent creator. Further, in examples, the service provider 102 may usefacial recognition techniques to determine the identity of the contentcreator. In some embodiments, if a content creator is not verifiedwithin a particular period of time, the content creator may need tobegin the process again.

FIG. 3 illustrates details of an example user device 302, such as thedevice 104 and/or the device 106 of FIG. 1, according to one or moreembodiments. The user device 302 may be implemented as one or morecomputing devices, such as one or more desktop computers, one or morelaptops computers, one or more servers, one or more smartphones, one ormore electronic reader devices, one or more mobile handsets, one or morepersonal digital assistants, one or more portable navigation devices,one or more portable gaming devices, one or more tablet computers, oneor more wearable devices (e.g., a watch), one or more portable mediaplayers, one or more televisions, one or more set-top boxes, one or morecomputer systems in a vehicle, one or more appliances, one or morecameras, one or more security systems, one or more home-based computersystems, one or more projectors, and so on. As illustrated, the userdevice 302 may include control circuitry 304, data storage 306, one ormore network interfaces 308, one or more user input/output devices 310,and one or more power supply unit(s) 312. The various components of theuser device 302 may be electrically and/or communicatively coupled usingcertain connectivity circuitry/devices/features, which may or may not bepart of the control circuitry 304.

The control circuitry 304 may include one or more processors, such asone or more central processing units (CPUs), one or moremicroprocessors, one or more graphics processing units (GPUs), one ormore digital signal processors (DSPs), and/or other processingcircuitry. Alternatively, or additionally, the control circuitry 304 caninclude one or more application specific integrated circuits (ASIC), oneor more field-programmable gate arrays (FPGAs), one or moreprogram-specific standard products (ASSPs), one or more complexprogrammable logic devices (CPLDs), and/or the like. The controlcircuitry 304 may be configured to execute one or more instructionsstored in the data storage 306 to thereby perform one or more operationsto implement various functionality discussed herein. The controlcircuitry 304 can operate in cooperation with any of the components ofthe user device 302 to facilitate such functionality.

The data storage 306 can include any suitable or desirable type ofcomputer-readable media. For example, computer-readable media caninclude one or more volatile data storage devices, non-volatile datastorage devices, removable data storage devices, and/or nonremovabledata storage devices implemented using any technology, layout, and/ordata structure(s)/protocol, including any suitable or desirablecomputer-readable instructions, data structures, program modules, orother types of data. Computer-readable media that may be implemented inaccordance with embodiments of the present disclosure includes, but isnot limited to, phase change memory, static random-access memory (SRAM),dynamic random-access memory (DRAM), other types of random access memory(RAM), read-only memory (ROM), electrically erasable programmableread-only memory (EEPROM), flash memory or other memory technology,compact disk read-only memory (CD-ROM), digital versatile disks (DVD) orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other non-transitorymedium that can be used to store information for access by a computingdevice. As used in certain contexts herein, computer-readable media maynot generally include communication media, such as modulated datasignals and carrier waves. As such, computer-readable media shouldgenerally be understood to refer to non-transitory media. The datastorage 306 may store one or more instructions that are executable bythe control circuitry 304 to facilitate various functionality discussedherein.

The one or more network interfaces 308 may be configured to communicatewith one or more devices over a communication network. For example, theone or more network interfaces 308 may send/receive data in a wirelessor wired manner over a network. A communication network can include alocal area network (LAN), a wide area network (WAN) (e.g., theInternet), a personal area network (PAN), a body area network (BAN),etc. In some embodiments, the one or more network interfaces 308 mayimplement a wireless technology such as Bluetooth, Wi-Fi, near fieldcommunication (NFC), or the like. In some embodiments, the one or morenetwork interfaces 308 may include a transceiver (e.g., transceivercircuitry embodied in one or more devices) configured totransmit/receive signals wirelessly.

The one or more user I/O components 310 may include one or moreelectronic displays 314 configured to display data, one or more speakers316 configured to output an audio signal, one or more buttons 318configured to receive input, one or more microphones 320 configured todetect sound and convert the sound into an electrical signal, and/or oneor more imaging devices 322. The one or more displays 314 can includeone or more liquid-crystal (LCD) displays, light-emitting diode (LED)displays, organic LED displays, plasma displays, electronic paperdisplays, and/or any other type of technology. In some embodiments, theone or more displays 314 include one or more touchscreens configured toreceive input and/or display data. The one or more buttons 318 caninclude one or more mechanical push-buttons configured to be depressedor pushed, one or more touch buttons configured to receive touch input,or any other type of button. The one or more imaging devices 322 caninclude one or more cameras configured to capture an image(s) of anenvironment, one or more depth/range sensors configured to generatedepth information for an environment, and so on. Although the one ormore user I/O components 310 are illustrated as separate components, anyof the components can be implemented together.

The one or more user I/O components 310 can be configured to receiveinput from a user and/or provide output to the user. In one example, theone or more user I/O components 310 provide a user interface via the oneor more displays 314 with information regarding a data structure/objectdata/real-time data, and a user can provide input via the userinterface. In some embodiments, a user can provide speech input via themicrophone(s) 320 and the user device 302 and/or another device canperform operations requested by the speech input. In some embodiments, auser can provide input via the one or more displays 314/the one or morebuttons 318, and the user device 302 and/or another device can performan operation based on the input. In some embodiments, one or more of theuser I/O components 310 or other components can operate to receivegesture input (e.g., the imaging device(s) 322 can capture an image(s)of a user making a gesture(s) and the gesture(s) can be processed usinggesture recognition to identify an operation being requested).

The power supply unit(s) 312 can be configured to manage power for theuser device 302, such as power provided to and/or received from one ormore components of the user device 302. In some embodiments, the powersupply unit(s) 312 includes one or more batteries, such as alithium-based battery, a lead-acid battery, an alkaline battery, and/oranother type of battery. That is, the power supply unit(s) 312 maycomprise one or more devices and/or circuitry configured to provide asource of power and/or provide power management functionality. Further,in some embodiments, the power supply unit(s) 312 includes a mains powerconnector that is configured to couple to an alternating current (AC) ordirect current (DC) mains power source.

FIGS. 4-1 through 4-4 illustrates example data flow diagrams showingcertain data transmissions and/or processes for devices of a system inaccordance with one or more embodiments. Each block may represent one ormore operations that may be implemented in hardware, software, or acombination thereof. In the context of software, an operation mayrepresent computer-executable instructions stored on one or morecomputer-readable media that, when executed by control circuitry,perform the recited operation. Computer-executable instructions mayinclude routines, programs, objects, components, data structures, andthe like that perform particular functions or implement particularabstract data types. In some embodiments, vertical positioning ofcertain blocks in a diagram may represent relative temporal occurrenceof an operation associated with such blocks. However, it should beunderstood that vertical positioning does not represent temporalcharacteristics in some embodiments.

For ease of discussion, the data flow diagrams of FIGS. 4-1 through 4-4are discussed in the context of the devices/components of FIG. 1, aswell as a bank service provider 402. In examples, the bank serviceprovider 402 may be implemented as one or more computing devices, suchas one or more servers, one or more laptops computers, and so on, whichmay include control circuitry and/or data storage. However, any of thedata flow diagrams may be implemented in the context of otherarchitectures. In examples, communication between the content creationdevice 104, the service provider 102, the content consumption device106, and/or the bank service provider 402 may be carried out over one ormore networks in a wireless and/or wired manner. In some embodiments,generating data for display, sending the data to another device fordisplay on the other device, and/or displaying the data may be referredto as “causing display of the data.”

In FIG. 4-1, at block 404, the service provider 102 may generate userinterface data. The user interface data may represent a user interface(e.g., a user interface for a content creator), one or more visualrepresentations for a data structure/object data, and so on. In someembodiments, the user interface data may indicate that one or more dataslots of a data structure are filled or empty. If filled, the userinterface data may include data associated with the filled data slot.

At block 406, the service provider 102 may send (e.g., transmit) theuser interface data to the content creation device 104. At block 408,the content creation device 104 may receive the user interface data fromthe service provider 102.

At block 410, the content creation device 104 may display a userinterface. For example, based on the user interface data, the contentcreation device 104 may display a user interface that includes one ormore visual representations for a data structure. The user interface mayenable a content creator to view, create, and/or update data associatedwith a data structure, such as a data structure associated with thecontent creator. In some embodiments, the content creation device 104may store at least some user interface data locally to facilitatedisplay of a user interface.

At block 412, the content creation device 104 may receive input relatedto creation of an event/item. For example, a content creator may provideinput via the content creation device 104 regarding creation/update ofan event/item for a data structure (e.g., creation of an event for acalendar). The input may include one or more values to create/update theevent/item. Based on such input, the content creation device 104 maygenerate event data that includes the one or more values.

At block 414, the content creation device 104 may send the event data tothe service provider 102. At block 416, the service provider 102 mayreceive the event data from the content creation device 104.

At block 418, the service provider 102 may generate object data. Forexample, based on the event data provided by the content creation device104, the service provider 102 may generate event object data indicativeof an event/item for a data structure. The object data may include oneor more parameters that may be associated with one or more values, whichmay initially be empty. In some embodiments, the object data may be of areal-time data type indicating that the object data is associated withor may be associated with real-time data. Here, the object data mayinclude particular parameters/values for real-time data and/or may beconfigured in a particular format to distribute real-time data in anefficient manner. In other embodiments, the object data may be of adifferent type.

At block 420, the service provider 102 may associate one or more valueswith the object data. For example, the service provider 102 mayassociate one or more of the values included in the event data from thecontent creation device 104 with corresponding parameters in the objectdata. To illustrate, the service provider 102 may analyze the one ormore values included in the event data to determine a data type of avalue. The service provider 102 may fill in a parameter (e.g., anassociated value field) with a value that has the same/similar datatype.

At block 422, the service provider 102 may store the object data inassociation with a data structure. For example, the service provider 102may store or otherwise associate the object data with a data slot of adata structure associated with a content creator of the content creationdevice 104.

Although blocks 418-422 are illustrated as being performed by theservice provider 102, in some embodiments, the content creation device104 may alternatively, or additionally, perform one or more of suchblocks. Here, event data may not be sent to the service provider 102,and the content creation device 104 may generate object data for anevent/item based on input received via the content creation device 104.The content creation device 104 may send the object data to the serviceprovider 102 to associate the object data with a data structure orotherwise make the object data available.

At block 424, the service provider 102 may send a notification regardingthe object data to the content consumption device 106. For example, if acontent consumer has subscribed to receive updates regarding a datastructure of a particular content creator (e.g., is following theparticular content creator), the service provider 102 may notify thecontent consumer of an update to the data structure upon creation ofobject data for the data structure.

At block 426, the content consumption device 106 may receive thenotification from the service provider 102. At block 428, the contentconsumption device 106 may display the notification. For example, thecontent consumption device 106 may display the notification via a userinterface designed for display of information regarding a datastructure. Additionally, or alternatively, the content consumptiondevice 106 may display the notification within a pop-up window or otherwindow on the content consumption device 106.

In FIG. 4-2, at block 430, the service provider 102 may generate userinterface data. The user interface data may represent a user interface(e.g., a user interface for a content consumer), one or more visualrepresentations for a data structure/object data, one or more real-timedata indicators indicative of real-time data, and so on. In someembodiments, the user interface data may include one or more visualrepresentations for a data structure/object data associated with acontent creator.

At block 432, the service provider 102 may send (e.g., transmit) theuser interface data to the content consumption device 106. At block 434,the content consumption device 106 may receive the user interface datafrom the service provider 102.

At block 436, the content consumption device 106 may display a userinterface. For example, based on the user interface data, the contentconsumption device 106 may display a user interface that includes one ormore visual representations for a data structure/object data associatedwith a content creator. The user interface may enable the contentconsumer to view and/or gain access to data associated with a datastructure, such as a data structure for a content creator. In someembodiments, the content consumption device 106 may store at least someuser interface data locally to facilitate display of a user interface.

At block 438, the content consumption device 106 may receive accessinput. For example, the content consumption device 106 may receive arequest from a content consumer to acquire access rights to an event ofa data structure and/or data associated with the event/item.

At block 440, the content consumption device 106 may send a data accessrequest to the service provider 102. For example, based on the accessinput, the content consumption device 106 may generate a data accessrequest and send the data access request to the service provider 102.The data access request may identify the content consumer, the contentconsumption device 106, and/or the object data that the content consumeris requesting to access. In some embodiments, the data access requestmay include transaction data to facilitate acquisition of object data,such as data to facilitate a financial transaction. At block 442, theservice provider 102 may receive the data access request from thecontent consumption device 106.

At block 444, the service provider 102 may perform an authorizationprocess to acquire access to an event/item and/or data associated withthe event/item. The authorization process may be performed based on/inresponse to receiving the data access request. The authorization processmay include one or more of blocks 446-456 to determine if a contentconsumer/transaction is authorized to acquire access to the event/itemand/or data associated with the event/item.

At block 446, the service provider 102 may send transaction data to thebank service provider 402. The transaction data may indicate a monetaryvalue for acquiring access to the event/item (e.g., a price for viewingthe event), a content consumer requesting the access (e.g., thebuyer/purchaser), a content creator associated with the event/objectdata (e.g., the seller/merchant), a bank or other institute associatedwith processing the transaction, and so on.

At block 448, the bank service provider 402 may receive the transactiondata. At block 450, the bank service provider 402 may perform one ormore authorization communications to determine if the content consumeris authorized for the transaction. For example, the bank serviceprovider 402 may determine if there are sufficient funds in an account,such as a bank account associated with the content consumer. At block452, the bank service provider 402 may send authorization dataindicative of whether or not the content consumer is authorized for thetransaction (e.g., whether or not the transaction has been processed,whether or not there are sufficient funds, etc.).

At block 454, the service provider 102 may receive the authorizationdata from the bank service provider 402. At block 456, the serviceprovider 102 may determine if the user is authorized to access theevent/item and/or object data associated with the event/item. Forexample, if the authorization data indicates that a transaction isprocessed/authorized for a content consumer, the service provider 102may determine that the content consumer is authorized to access theevent/item. In contrast, if the authorization data indicates that thetransaction was not processed/authorized for a content consumer, theservice provider 102 may determine that the content consumer is notauthorized to access the event/item. In some embodiments, the serviceprovider 102 may provide a notification to a content consumer indicativeof whether or not the content consumer is authorized to access anevent/item.

In some embodiments, the authorization process 444 may be performedwithout communicating with the bank service provider 402. For example,the service provider 102 may manage funds/value in a digital account(e.g., a digital currency, rewards, points, etc.). A content consumermay use such account to acquire access to an event/item. Here, theservice provider 102 may determine if there are sufficient funds/valuein the account to acquire access to the event/item. In some embodiments,a content consumer or another user may receive funds/value from theservice provider 102 by performing particular tasks, such as following acontent creator, purchasing/watching real-time data, promoting a contentcreator, and so on.

At block 458, the service provider 102 may associate object data with adata structure. In some examples, if the authorization process 444determines that a content consumer is authorized to access an event/itemof a content creator, the service provider 102 may associate at least aportion of object data for the event/item with a data structure that isassociated with the content consumer (e.g., associate a calendar eventof a content creator with a calendar of a content consumer). Further, insome examples, object data may be associated with a data structure of acontent consumer without having performed the authorization process 444.For example, a content consumer may desire to save object data for anevent/item of a data structure associated with a content creator to adata structure associated with the content consumer. If the event/itemrequires acquisition, the event/item may be acquired at a later time(e.g., using the authorization process 444).

In FIG. 4-3, at block 460, the content creation device 104 may display anotification regarding an event/item in a data structure. For example,in response to detecting that an event is about to occur (e.g., in lessthan a threshold amount of time), and the event is associated withdistributing real-time data, the content creation device 104 may displaya notification that the event is about to occur (e.g., as a reminder).In some embodiments, the service provider 102 may notify the contentcreation device 104 that the event is about to occur.

At block 462, the content creation device 104 may generate real-timedata. For example, the content creation device 104 may capture real-timedata regarding an environment in which the content creation device 104is located. The real-time data may be associated with an event/item of adata structure, such as a data-streaming event. In some embodiments, thereal-time data may include real-time image data, such as a live video.At block 464, the content creation device 104 may send the real-timedata and/or an identifier indicative of the event/item to the serviceprovider 102. In examples, the identifier may comprise a uniqueidentifier identifying the event/item/object data.

At block 466, the service provider 102 may perform a real-time dataprocess. For example, the real-time data process may include one or moreof blocks 468-474 to facilitate distribution of the real-time data overone or more networks to one or more devices, which may be locatedremotely to the service provider 102.

At block 468, the service provider 102 may receive the real-time dataand/or the identifier from the content creation device 104. At block470, the service provider 102 may associate the real-time data with adata structure and/or object data associated with the event/item. Forexample, the service provider 102 may use the identifier from thecontent creation device 104 to identify object data for the event/item.The service provider 102 may store or otherwise associate the real-timedata with the object data. In some embodiments, the real-time data isstored in a database associated with the service provider 102.

At block 472, the service provider 102 may determine that a user isassociated with the object data. For example, the service provider 102may determine that the object data is associated with a data structureof a content consumer (e.g., at least a portion of the object data hasbeen stored in the data structure of the content consumer) and/or thatthe object data includes an access value for the content consumer (e.g.,indicative of the content consumer being authorized to access theassociated event/item).

At block 474, the service provider 102 may send the real-time dataand/or the identifier of the event/item to the content consumptiondevice 106. At block 476, the content consumption device 106 may receivethe real-time data and/or the identifier.

At block 478, the content consumption device 106 may display thereal-time data. For example, the real-time data may be displayed via auser interface that is dedicated to providing information regarding adata structure, such as a calendar-type user interface that is designedfor calendar data.

In some embodiments, the content consumption device 106 may display anotification regarding the real-time data, at block 480. For example, inresponse to detecting that an event is about to occur (e.g., in lessthan a threshold amount of time), and/or the event is associated withdistributing real-time data, the content consumption device 106 maydisplay a notification that the event is about to occur. In someembodiments, the service provider 102 may notify the content consumptiondevice 106 that the event is about to occur.

In FIG. 4-4, at block 482, the content consumption device 106 mayreceive feedback input. For example, while real-time data is beingdisplayed via the content consumption device 106, a content consumer mayprovide a thumbs-up, thumbs down, rating, ranking, score, and so on,regarding the real-time data. The feedback input may be provided via thesame user interface that is used to display the real-time data, in somecases.

At block 484, the content consumption device 106 may send feedback datato the service provider 102. The feedback data may include or be basedon the feedback input. As such, the feedback data may be indicative ofhow the real-time data is being received by the content consumer. Insome embodiments, the feedback data may include an identifier indicativeof the event/item and/or the real-time data.

At block 486, the service provider 102 may receive the feedback datafrom the content consumption device 106. At block 488, the serviceprovider 102 may associate the feedback data with real-time data. Forexample, the service provider 102 may use the identifier in the feedbackdata to identify an event/item and/or real-time data. In someembodiments, the service provider 102 may store the feedback data in adatabase associated with the service provider 102.

At block 490, the service provider 102 may send at least a portion ofthe feedback data to the content creation device 104. In someembodiments, the feedback data may be sent in the form of user interfacedata, which is displayable via a user interface. The feedback data maybe sent while the real-time data is being distributed and/or at anothertime. At block 491, the content creation device 104 may receive thefeedback data from the service provider 102.

At block 492, the content creation device 104 may display at least aportion of the feedback data. For example, the feedback data may bedisplayed to a content creator that captured the real-time data. In someembodiments, the feedback data is displayed to the content creator asthe real-time data is being captured, such as in an overlaid manner overa camera view. This may enable the content creator to view how thereal-time data is being received in a live manner. However, the feedbackdata may be displayed at any time, such as after a data-streaming event(e.g., a broadcast). In some embodiments, the feedback data may bedisplayed in a graph or with another visual representations to indicatehow positive/negative the reception is of the real-time data.

At block 493, the service provider 102 may analyze data associated withone or more data structures. In examples, the service provider 102 mayanalyze one or more data structures to identify a data slot/time periodthat is most available across content consumers, a data slot/time periodthat is most filled (e.g., scheduled), a type of object data that ismost/least associated with a data structure (e.g., data structures thatinclude more real-time events than other types of events), a dataslot/time period that is most filled for a particular type of dataobject data (e.g., evenings are most frequently scheduled for real-timedata events), and so on. Further, in examples, the service provider 102may analyze transaction data to identify a most/least/averageacquisition value for real-time data (e.g., an average price for anevent/item), a type of content consumer that is most/least frequentlyauthorized/not authorized to access an event/item, a total number ofacquisitions of a particular event/item (e.g., a number of purchases ofan event/item), a total monetary value paid for a particular event/item(e.g., total revenue for publishing real-time data for the event/item),a total number of acquisitions of events/items associated with a contentcreator (e.g., a number of purchases of events/items associated with thecontent creator), a total monetary value paid for events/itemsassociated with a content creator (e.g., total revenue earned by acontent creator for multiple events/items), and so on. Moreover, inexamples, the service provider 102 may analyze feedback data to identifya data slot/time period during which the most/least amount ofpositive/negative feedback is received.

At block 494, the service provider 102 may generate metric data based onthe analysis of the data. The metric data may be indicative of any ofthe information identified in the analysis. At block 495, the serviceprovider 102 may send the metric data to the content creation device104. In some embodiments, the metric data may additionally, oralternatively, be sent to the content consumption device 106. Inexamples, the metric data may be provided as a recommendation, such as asuggested time to a content creator to schedule an event (e.g., a timeperiod during which the most content consumers may likely view theevent).

At block 496, the content creation device 104 may receive the metricdata from the service provider 102. At block 497, the content creationdevice 104 may display the metric data. In some embodiments, the metricdata is received and/or displayed during a real-time event. However, themetric data may be received and/or displayed at any time, such as aftera real-time event.

FIGS. 5-1 through 5-7 and FIGS. 6-1 through 6-9 illustrate exampleinterfaces that may be presented according to one or more embodiments.The interfaces (also referred to as “user interfaces”) may be providedvia a web browser, an application (e.g., a mobile application, desktopapplication etc.), and so on. The interfaces of FIGS. 5-1 through 5-7may generally be presented via a content creation device to manage adata structure associated with a content creator. Meanwhile, theinterfaces of FIGS. 6-1 through 6-7 may generally be presented via acontent consumption device. However, the interfaces may be presented viaany device. Further, in examples, a service provider may communicatewith a content creation device and/or a content consumption device tofacilitate one or more of the interfaces. The interfaces of FIGS. 5-1through 5-7 and FIGS. 6-1 through 6-9 are discussed in the context ofcalendar data, with a data structure representing a calendar and objectdata representing an event, such as a concert, a book release, a liveperformance, etc. However, it should be appreciated that the interfacesmay be displayed in a similar manner in other contexts. In someembodiments, an event may include a data-streaming event (also referredto as a “real-time event” or “live event”) associated with distributingdata (e.g., image-based data) in real-time over one or more networks. Insome embodiments, a data-streaming event may be viewed upon acquiringthe data-streaming event (e.g., upon acquiring access to thedata-streaming event). In such cases, a data-streaming event may bereferred to as a pay-per-view event.

FIG. 5-1 illustrates an example interface 500 to provide informationregarding a calendar associated with a content creator (e.g., with ausername of “Mark”). The user interface 500 may include a plurality ofvisual representations 502(A)-502(E) (also referred to as “icons 502”)to navigate to different screens/interfaces (e.g., when selected by thecontent creator). For example, the visual representation 502(A) mayenable the content creator to navigate to a home screen (e.g., a maincalendar view for the content creator, such as that of FIG. 5-1), thevisual representation 502(B) may enable the content creator to managedraft events (e.g., view draft events, edit draft events, publish draftevents, and so on), the visual representation 502(C) may enable thecontent creator to navigate to a list view of data-streaming events(e.g., FIG. 5-2), the visual representation 502(D) may enable thecontent creator to view content consumers that are following the contentcreator (e.g., following a calendar of the content creator or otherwisefollowing the content creator), and the visual representation 502(E) mayenable the content creator to configure one or more settings.

The interface 500 includes a calendar section 504 that presents acalendar associated with the content creator. The calendar section 504includes a visual representation 506 which, when selected, enables anevent to be added to the calendar, as discussed in further detail below.The user interface 500 also includes an event list section 508 thatlists events that have been scheduled for a period of time. In thisexample, the content creator has selected May 2 in the calendar section504 and the event list section 508 is updated to show events on May 2 orafter. Here, events that are data-streaming events are illustrated witha real-time data indicator. For instance, the event 510 is illustratedwith a real-time data indicator 512 (also referred to as “the live eventindicator 512”), which may indicate that the event is associated withstreaming data. That is, the event will include capturing real-time databy a content creation device and distributing the real-time data to oneor more content consumption devices in a streaming manner (e.g., insubstantially real-time). In examples, a real-time data indicator mayinclude the term “live,” as illustrated for the real-time data indicator512. The interface 500 also includes an icon 514 to represent thecontent creator, which may be set or otherwise configured for an accountassociated with the content creator.

FIG. 5-2 illustrates an example interface 516 to provide a list 518 ofdata-streaming events, such as upcoming pay-per-view events that havebeen scheduled. In this example, the interface 516 is presented uponselection of the visual representation 502(C). The list 518 may includedata-streaming events that have been scheduled beginning on the date May2, which was selected in FIG. 5-1. Although not illustrated withreal-time data indicators, any of the events may be listed with areal-time data indicator. Here, each of the data-streaming events is apay-per-view event, which requires acquisition of the event (e.g.,through a financial transaction). The interface 516 also includes avisual representation 520 which, when selected, enables an event to beadded to the calendar, as discussed in further detail below. Further,the interface 516 includes an icon 522 which, when selected, presentstransaction data for the content creator (e.g., FIG. 5-7).

FIGS. 5-3 and 5-4 illustrates an example interface 524 to create a newevent. In examples, the interface 524 may be presented upon selection ofthe icon 506 in FIG. 5-1 and/or upon selection of the icon 520 and FIG.5-2. The interface 524 may enable the content creator to provide one ormore values for the creation of an event. In examples, the portion ofthe interface 524 that is shown in FIG. 5-3 may be initially displayedand the portion of the interface 524 that is shown in FIG. 5-4 may bedisplayed when the content creator scrolls down or otherwise navigateswithin the interface 524.

As shown in FIG. 5-3 the interface 524 may include a window 526 to inputa title for the event and/or designate a color to be associated with theevent in the calendar. Further, the interface 524 may include a window528 to input a date/time for the event and a window 530 to associatecontent with the event (e.g., a media item). For example, the contentcreator may select an icon 532 to upload/capture a content item for theevent listing in the calendar, such as an image, video, audio, or othercontent. Such content may be displayed when information about the eventis viewed.

As shown in FIG. 5-4, the interface 524 may also include a window 534 toprovide an acquisition value for acquiring access to the event (e.g., aprice for viewing the event), a link to associate with the event (e.g.,a website), and notes to associate with the event (e.g., text in theexample of FIG. 5-4). This may allow the content creator to establish acustomized price for an event. In some embodiments, the interface 524may include an interface item to enable a content creator to input alocation for an event (e.g., a public appearance location, a location ofa concert, etc.). Further, in some embodiments, information may be inputinto the interface 524 (and/or any other interface) via a drop-downmenu. For example, the purchase price field of the window 534 may beimplemented as a drop-down menu with predetermined amounts.

Upon selecting a button 536 in the interface 524, as shown in FIG. 5-4,the new event may be created in the calendar based on the valuesprovided via the interface 524. That is, the new event may be scheduledin the calendar associated with the content creator based on theinformation received through the interface 524. In examples, the valuesmay be sent to a service provider for creation of an event for acalendar of the content creator. Once the event has been created, theevent may be made available to one or more content consumers (orotherwise available), so that the one or more content consumers may viewevents that are scheduled by the content creator, save events tocalendars associated with the one or more content consumers, and/orpurchase access to the event, if desired. Once created, the new eventmay also be made available within a calendar view on the content-creatorside, such as via the interface 500 of FIG. 5-1, the interface 516 ofFIG. 5-2, and/or other interfaces discussed herein.

FIG. 5-5 illustrates an example interface 538 to initiate broadcastingreal-time data for a data-streaming event. In examples, the interface538 may be displayed upon selection of the event within a calendar view,such as via selection of the event in the interface 500 of FIG. 5-1, theinterface 516 of FIG. 5-2, and/or another interface. The interface 538includes a window 540 with information indicating a content creator ofthe event, a date for the event, and a time for the event. The interface538 also includes a window 542 to provide a content item that is beenassociated with the event and a window 544 indicating a purchase pricefor the event, a link for the event, and notes for the event. Uponselection of a button 546, a content creation device associated with theinterface 538 may begin capturing real-time data (e.g., via theinterface of FIG. 5-6) and making the real-time data available toothers, such as by sending the real-time data to a service provider fordistribution. In examples, the button 546 may only be selected (andreal-time data captured for distribution) at or after the start time ofthe event. However, in other examples the button 546 may be selectedprior to the start time of the event, such as within a number ofseconds/minutes before the event starts. In some embodiments, theinterface 538 may include a count-down time that indicates an amount oftime until the event starts.

FIG. 5-6 illustrates an example interface 548 to present real-time dataregarding a data-streaming event. In examples, the interface 548 may bedisplayed upon selection of the button 546 in FIG. 5-5. The interface548 may display real-time data via the content creation device as thereal-time data is being captured by the content creation device. Theinterface 548 may display an amount of time 550 that has elapsed sinceinitiating capture of the real-time data, a button 552 to stop recordingof the real-time data, and an icon 554 to switch the recording between aforward-facing camera and a rear-facing camera of the content creationdevice. The real-time data may be sent to a service provider fordistribution to one or more content consumers. In examples, if abroadcast is interrupted while capturing real-time data, the interface538 of FIG. 5-5 may be displayed again to enable the content creator toreinitiate the live feed. In some examples, there may be a limit on howlong a data-streaming event may last. However, in other examples, adata-streaming event may last as long as desired. In some embodiments,feedback data from content consumers may be displayed via the interface548. Further, in some embodiments, the interface 548 may provide avisual representation indicative of a number of users that are currentlyviewing the real-time data, such as a number of users, a graph for anumber of users that are joining the data streaming event, and so on.

In the example of FIG. 5-6 the interface 548 is displayed in a landscapemode. In some embodiments, the interface 548 may be displayed in adefault mode, even if the content creation device is positioned in anorientation that would normally be associated with a different mode. Toillustrate, the interface 548 may be displayed in a landscape mode, evenif the device is oriented for a portrait mode. This may force a contentcreator to a particular orientation to capture real-time data in thelandscape mode, which may be better suited for broadcast in someexamples. However, the interface 548 may be displayed in any orientationmode (e.g., a landscape mode, a portrait mode, etc.) and/or switchbetween orientations.

FIG. 5-7 illustrates an example interface 556 to present subscriptionand acquisition information regarding data-streaming events for acontent creator. In examples, the interface 556 may be displayed uponselection of the icon 522 in FIG. 5-2. The interface 556 includes a list558 of data-streaming events that have occurred for the content creatorand/or data-streaming event that are scheduled to occur, along withsubscription and acquisition information regarding the data-streamingevents. For example, the list 558 includes information for an event 560indicating a number of users have acquired access to the event 560(i.e., 3 subscribers) and the total value/revenue earned from suchacquisitions (i.e., $9). The interface 556 also presents a totalvalue/revenue 562 earned from acquisitions of events associated with thecontent creator (i.e., $66).

In some embodiments, a service provider may provide 100% of thevalue/revenue associated with data-streaming events to a contentcreator. Alternatively, in some embodiments, the service provider maytake a portion of value/revenue. In examples, a portion of monetaryvalue that is paid to a content creator is based on a type of thecontent creator. To illustrate, a first type of content creator (e.g.,associated with more sales, having used the pay-per-view service alonger period of time, associated with a particular classification,etc.) may receive a larger portion of sales in comparison to a secondtype of content creator (e.g., associated with less sales, having usedthe pay-per-view service a shorter period of time, etc.). In examples,the interface 556 may present a total value/revenue (e.g., a grossamount of sales) and/or a total value/revenue owed to a content creator(e.g., a net amount of sales).

In some embodiments, a notification regarding a location of a contentcreator may be sent to one or more content consumers. As one example, acontent creator may provide input via an interface (such as any of theinterfaces of FIGS. 5-1 through 5-7) to indicate that the contentcreator is at a location where an event is to occur (e.g., the contentcreator has checked-in). A notification may be sent to one or morecontent consumers that have purchase access to the event and/or areotherwise associated with the event. As another example, a location of acontent creation device may be tracked, with the consent of a contentcreator, and a notification may be automatically sent to one or morecontent consumers when the content creator is at a location of an event.As yet another example, a notification may be automatically sent to oneor more content consumers when the content creator begins broadcastingfor the event.

FIG. 6-1 illustrates an example interface 600 to provide informationregarding a calendar associated with a content creator (e.g., with ausername of “Mark”) to a content consumer. The user interface 600 mayinclude a plurality of visual representations 602(A)-602(E) (alsoreferred to as “icons 602”) to navigate to different screens/interfaces(e.g., when selected by a content consumer). For example, the visualrepresentation 602(A) may enable the content consumer to view a homescreen (e.g., FIG. 6-1), the visual representation 602(B) may enable thecontent consumer to search for events and/or calendars, the visualrepresentation 602(C) may enable the content consumer to navigate to alist view of data-streaming events (e.g., FIG. 6-2), the visualrepresentation 602(D) may enable the content consumer to view anotification(s) regarding calendars of content creators (e.g., FIG.6-9), and the visual representation 602(E) may enable the contentconsumer to configure one or more settings.

The interface 600 includes a calendar section 604 that presents acalendar associated with a content creator, such as a content creatorthat the content consumer may be following, search for, etc. The userinterface 600 also includes an event list section 606 that lists eventsassociated with the content creator for a selected time. In thisexample, the content consumer has selected May 7 in the calendar section604 and the event list section 606 is updated to show events on May 7.Events that are data-streaming events may be illustrated with areal-time data indicator. For instance, the event 608 is illustratedwith a real-time data indicator 610 (also referred to as “the live eventindicator 610”). The real-time data indicator 610 may indicate that theevent is associated with streaming data. In examples, a real-time dataindicator may include the term “live,” as illustrated for the indicator610. The content consumer may select any of the events in the event listsection 606 to view information about the event and/or acquire access tothe event. The interface 600 also includes an icon 612 for an image orother content representing the content creator and an icon 614 to follow(or unfollow) the content creator. For example, upon selecting the icon614, the content consumer may subscribe to receive notificationsregarding calendar events that are added to the calendar of the contentcreator (e.g., follow the content creator). Although the interface 600includes events associated with a particular content creator in theexample of FIG. 6-1, the interface 600 may include events for one ormore content creators.

FIG. 6-2 illustrates an example interface 616 to provide a list 618 ofdata-streaming events, such as data-streaming events associated with oneor more content creators. In examples, the interface 616 is presentedupon selection of the visual representation 602(C) and selection of atab 620 in the interface 616. The list 618 may include informationregarding data-streaming events for one or more content creators thathave been scheduled for May 7, which was selected in FIG. 6-1. Here,each of the data-streaming events is a pay-per-view event, whichrequires acquisition of the event. For example, the informationassociated with the event 622 (titled “Acoustic Beachside”) indicatesthat the event for the content creator (i.e., “Mark”) starts at 10:15 AMon May 7 and may be purchased for three dollars. The content consumermay select any of the events in the list 618 to view information aboutthe event and/or acquire access to the event. The interface 616 alsoincludes a search field 624 and buttons 626 to search throughdata-streaming events and/or content creators (e.g., filterdata-streaming events/content creators to specific search terms, timeperiods, etc.). In examples, a content consumer may search for acalendar of a specific content creator, a calendar associated with aparticular category, events of a particular category/time period, and soon. The interface 616 also includes a tab 628 to view data-streamingevents that have been purchased by the content consumer (e.g., FIG.6-8).

FIG. 6-3 illustrates an example interface 630 to facilitate acquisitionof a data-streaming event. In examples, the interface 630 may bedisplayed upon selection of an event, such as via selection of the eventin the interface 600 of FIG. 6-1, selection of the event 622 in theinterface 616 of FIG. 6-2, and/or another interface. The interface 630includes a window 632 with information indicating a content creator ofthe event, a date for the event, and a time for the event. The interface630 also includes a window 634 to provide a content item that is beenassociated with the event and a window 636 indicating a purchase pricefor the event, a link for the event, and notes for the event.

Further, the interface 630 includes a button 638 that, when selected,initiates a transaction to acquire access to the data-streaming event(e.g., purchase access rights to the event in the amount of the purchaseprice). For example, selection of the button 638 may cause display of aninterface 640 illustrated in FIG. 6-4. The interface 640 may include awindow 642 with event summary information, which may be pertinent topurchasing the event. The interface 640 may include a button 644 that,when selected, may cause a content consumer device to send a data accessrequest to a service provider to initiate an authorization process forthe content consumer. If the transaction is authorized, the event may beassociated with the content consumer, such as included in a list ofpurchased events (e.g., FIG. 6-8). Once acquired, the content consumermay view the event in a live manner while the event is occurring and/orin an on-demand manner after the event (e.g., FIG. 6-5). In someembodiments, upon selecting the button 644 to purchase the event, one ormore windows and/or additional user interfaces may be displayed toselect a type of payment (e.g., credit card, bank account, mobilepayment, and/or other account), view that a payment that issuccessful/unsuccessful, and so on.

Although many examples are discussed in the context of a contentconsumer selecting an event associated with a content creator andpurchasing the event, in some embodiments the content consumer may addthe event to a calendar associated with the content consumer. Inexamples, if the event is a pay-per-view event, the content consumer maylater access the calendar associated with the content consumer andacquire access to the event. As such, a content consumer may add anytype of event from a calendar of a content creator to a calendarassociated with the content consumer and/or may acquire access to theevent at any time.

FIG. 6-5 illustrates an example interface 646 to initiate display ofdata associated with a data-streaming event. In examples, the interface646 may be presented upon purchasing the data-streaming event and/orselecting the data-streaming event in an interface. As shown, theinterface 646 may include various information from the interface 630 ofFIG. 6-3, such as the windows 632-636 regarding the data-streamingevent. The interface 646 also includes a button 648 to view real-timedata associated with the data-streaming event. For example, at and/orafter the start time of the event, the content consumer may select thebutton 648 and view real-time data that is streamed from a contentcreation device associated with the content creator. FIG. 6-6illustrates an example interface 650 to provide data for the event inreal-time (e.g., in a streaming manner as the event occurs). In someembodiments, a content consumption device may provide a notificationbefore and/or at a time when an event is scheduled to occur. Further,the interface 646 includes a button 652 to view data captured for theevent in an on-demand manner, such as after the event has occurred. FIG.6-7 illustrates an example interface 654 to present data captured for anevent (e.g., real-time data that is captured, and also stored for laterviewing). Here, the interface 654 includes a window 656 to controlplayback of the data associated with the event (e.g., pause, play,fast-forward, rewind, etc. the video data). In some embodiments, theinterface 646 of FIG. 6-5 may include a count-down time or thatindicates an amount of time until an event starts.

FIG. 6-8 illustrates an example interface 658 to provide a list 660 ofdata-streaming events that have been purchased by a content consumer. Inthis example, the interface 616 may be presented upon selection of thevisual representation 602(C) and selection of a tab 662 in the interface658. As shown, the content consumer has purchased the event 664 (i.e.,titled “Acoustic Beachside”). The interface 658 also includes a searchfield 666 and buttons 668 to search through data-streaming events thathave been purchased by the content consumer (e.g., filter thedata-streaming events to specific search terms, time periods, etc.).

FIG. 6-9 illustrates an example interface 670 to provide a list 672 ofnotifications regarding one or more events of content creators. Inexamples, the interface 670 may be presented upon selection of thevisual representation 602(D). The list 672 of notifications may includenotifications that have been added (e.g., within a period of time) tocalendars of content creators that are been followed by a contentconsumer. This may be used to inform the content consumer of new eventsand/or purchase access to the events. For example, a notification 674may indicate that a content creator (i.e., “Mark”) has added a new event(i.e., titled “Meet and Greet”) for April 8. Upon selection of thenotification 674, the content consumer may add the event to a calendarassociated with the content consumer and/or purchase access to theevent. In examples, a content consumer may select the text “Calendar,”“Live Events,” or “Live Now” to filter notifications presented in thelist 672.

In some embodiments, one or more of the interfaces of FIGS. 5-1 through5-7 and FIGS. 6-1 through 6-9 may be implemented in the context of acalendar-based platform that enables content creators to provide contentconsumers with a schedule of the content creators and/or view data forevents. Such platform may provide an integrated interface that enablesdisplay of both calendar information and real-time data. This mayfacilitate efficient use of an interface resources, resulting in reducedtransitions between multiple applications (e.g., consuming lesscomputing resources), efficient display of data, reduced networkcommunications (e.g., in comparison to solutions that use multipleapplications that each require communication with a service provider),and so on.

Additional Features

The above description of embodiments of the disclosure is not intendedto be exhaustive or to limit the disclosure to the precise formdisclosed above. While specific embodiments, and examples, are describedabove for illustrative purposes, various equivalent modifications arepossible within the scope of the disclosure, as those skilled in therelevant art will recognize. For example, while processes or blocks arepresented in a given order, alternative embodiments may perform routineshaving steps, or employ systems having blocks, in a different order, andsome processes or blocks may be deleted, moved, added, subdivided,combined, and/or modified. Each of these processes or blocks may beimplemented in a variety of different ways. Also, while processes orblocks are at times shown as being performed in series, these processesor blocks may instead be performed in parallel or may be performed atdifferent times.

Conditional language used herein, such as, among others, “can,” “could,”“might,” “may,” “e.g.,” and the like, unless specifically statedotherwise, or otherwise understood within the context as used, isintended in its ordinary sense and is generally intended to convey thatcertain embodiments include, while other embodiments do not include,certain features, elements and/or steps. Thus, such conditional languageis not generally intended to imply that features, elements and/or stepsare in any way required for one or more embodiments or that one or moreembodiments necessarily include logic for deciding, with or withoutauthor input or prompting, whether these features, elements and/or stepsare included or are to be performed in any particular embodiment.

It should be understood that certain ordinal terms (e.g., “first” or“second”) may be provided for ease of reference and do not necessarilyimply physical characteristics or ordering. Therefore, as used herein,an ordinal term (e.g., “first,” “second,” “third,” etc.) used to modifyan element, such as a structure, a component, an operation, etc., doesnot necessarily indicate priority or order of the element with respectto any other element, but rather may generally distinguish the elementfrom another element having a similar or identical name (but for use ofthe ordinal term). In addition, as used herein, indefinite articles (“a”and “an”) may indicate “one or more” rather than “one.” Further, anoperation performed “based on” a condition or event may also beperformed based on one or more other conditions or events not explicitlyrecited. In some contexts, description of an operation or event asoccurring or being performed “based on,” or “based at least in part on,”a stated event or condition can be interpreted as being triggered by orperformed in response to the stated event or condition.

With respect to the various methods and processes disclosed herein,although certain orders of operations or steps are illustrated and/ordescribed, it should be understood that the various steps and operationsshown and described may be performed in any suitable or desirabletemporal order. Furthermore, any of the illustrated and/or describedoperations or steps may be omitted from any given method or process, andthe illustrated/described methods and processes may include additionaloperations or steps not explicitly illustrated or described.

It should be appreciated that in the above description of embodiments,various features are sometimes grouped together in a single embodiment,figure, or description thereof for the purpose of streamlining thedisclosure and aiding in the understanding of one or more of the variousinventive aspects. This method of disclosure, however, is not to beinterpreted as reflecting an intention that any claim require morefeatures than are expressly recited in that claim. Moreover, anycomponents, features, or steps illustrated and/or described in aparticular embodiment herein can be applied to or used with any otherembodiment(s). Further, no component, feature, step, or group ofcomponents, features, or steps are necessary or indispensable for eachembodiment. Thus, it is intended that the scope of the disclosure hereindisclosed and claimed below should not be limited by the particularembodiments described above but should be determined only by a fairreading of the claims that follow.

Unless the context clearly requires otherwise, throughout thedescription and the claims, the terms “comprise,” “comprising,” “have,”“having,” “include,” “including,” and the like are to be construed in anopen and inclusive sense, as opposed to a closed, exclusive, orexhaustive sense; that is to say, in the sense of “including, but notlimited to.”

The word “coupled”, as generally used herein, refers to two or moreelements that may be physically, mechanically, and/or electricallyconnected or otherwise associated, whether directly or indirectly (e.g.,via one or more intermediate elements, components, and/or devices.Additionally, the words “herein,” “above,” “below,” and words of similarimport, when used in this application, shall refer to this applicationas a whole, including any disclosure incorporated by reference, and notto any particular portions of the present disclosure. Where the contextpermits, words in present disclosure using the singular or plural numbermay also include the plural or singular number, respectively.

The word “or” in reference to a list of two or more items, that wordcovers all of the following interpretations of the word: any of theitems in the list, all of the items in the list, and any combination ofthe items in the list. Furthermore, as used herein, the term “and/or”used between elements (e.g., between the last two of a list of elements)means any one or more of the referenced/related elements.

As may be used herein, the terms “substantially” and “approximately”provides an industry-accepted tolerance for its corresponding termand/or relativity between items. For some industries, anindustry-accepted tolerance is less than one percent, while for otherindustries, the industry-accepted tolerance may be 10 percent or more.Other examples of industry-accepted tolerances range from less than onepercent to fifty percent. Industry-accepted tolerances correspond to,but are not limited to, component values, integrated circuit processvariations, temperature variations, rise and fall times, thermal noise,dimensions, signaling errors, dropped packets, temperatures, pressures,material compositions, and/or performance metrics. Within an industry,tolerance variances of accepted tolerances may be more or less than apercentage level (e.g., dimension tolerance of less than approximately+/−1%). Some relativity between items may range from a difference ofless than a percentage level to a few percent. Other relativity betweenitems may range from a difference of a few percent to magnitude ofdifferences.

One or more embodiments have been described above with the aid of methodsteps illustrating the performance of specified functions andrelationships thereof. The boundaries and sequence of these functionalbuilding blocks and method steps have been arbitrarily defined hereinfor convenience of description. Alternate boundaries and sequences canbe defined so long as the specified functions and relationships areappropriately performed. Any such alternate boundaries or sequences arethus within the scope and spirit of the claims. Further, the boundariesof these functional building blocks have been arbitrarily defined forconvenience of description. Alternate boundaries could be defined aslong as the certain significant functions are appropriately performed.Similarly, flow diagram blocks may also have been arbitrarily definedherein to illustrate certain significant functionality.

To the extent used, the flow diagram block boundaries and sequence couldhave been defined otherwise and still perform the certain significantfunctionality. Such alternate definitions of both functional buildingblocks and flow diagram blocks and sequences are thus within the scopeand spirit of the claims. One of average skill in the art will alsorecognize that the functional building blocks, and other illustrativeblocks, modules and components herein, can be implemented as illustratedor by discrete components, application specific integrated circuits,processors executing appropriate software and the like or anycombination thereof.

The one or more embodiments are used herein to illustrate one or moreaspects, one or more features, one or more concepts, and/or one or moreexamples. A physical embodiment of an apparatus, an article ofmanufacture, a machine, and/or of a process may include one or more ofthe aspects, features, concepts, examples, etc. described with referenceto one or more of the embodiments discussed herein. Further, from figureto figure, the embodiments may incorporate the same or similarly namedfunctions, steps, modules, etc. that may use the same, related, orunrelated reference numbers. The relevant features, elements, functions,operations, modules, etc. may be the same or similar functions or may beunrelated.

Additional Examples

In accordance with certain calendar management paradigms, an individualuser maintains his or her own calendar, which may be viewable and/ormanageable using a computing device, such as a desktop computer, laptop,mobile device (e.g., smartphone), or the like. As used herein, the term“calendar” should be interpreted according to its broad and ordinarymeaning and may refer to a calendaring software application, a calendarobject or data type, or any other software and/or hardwarerepresentation of calendar data, or software and/or hardware utilized inconnection therewith. The term “object” is used herein according to itsbroad and ordinary meaning, and may refer to any type of data structureor data type having one or more parameters associated therewith.

Calendar display and/or management functionality may be implemented, forexample, using a combination of hardware and/or software associated witha computing device. In certain embodiments, when a calendar event is tobe shared with and/or provided to other users, it may be necessary for auser (e.g., scheduler, or “master” scheduler) to send a calendar eventnotice to the individual recipients, wherein each of the recipients maybe required to add the calendar event to his or her personalcalendar/calendar program in order to view the event in the context ofthe recipient's personal calendar/calendar program. Updates to theoriginal calendar event may require the recipient to incorporate suchupdates into his or her personal calendar. Furthermore, in certainembodiments, when a recipient wishes to share the calendar event with asecondary recipient, it may be necessary for the recipient to forwardthe original event in addition to any subsequent updates to thesecondary recipient in order to ensure that the up-to-date eventinformation is communicated to the secondary recipient.

Certain calendar system embodiments provide for “shared” calendars. Forexample, a scheduler (e.g., “master” scheduler) user may make availablethe scheduler's calendar to the desired recipient(s). The term “shared”is used herein according to its broad and ordinary meaning, and may beused herein in the context of shared calendars and/or events to refer tocalendars and/or events that are known or accessible to a plurality ofindividuals or users. In certain embodiments, it may be desirable for ashared calendar to be carefully managed in order to at least partiallyprevent undesired overexposure of one or more portions or aspects of thecalendar. For example, one or more portions or aspects of a calendar maycomprise confidential and/or sensitive information that the scheduler ormanager of the calendar may not wish to share beyond a subset of sharedusers of the calendar. Furthermore, in certain embodiments, it may benecessary or desirable for users to be registered in a substantiallycentralized directory in order to have access to the shared calendar; arecipient or member associated with the shared calendar may not have theability and/or permission to invite secondary users/recipients to usethe shared calendar and/or calendar event(s) associated with the sharedcalendar unless such secondary users/recipients are identified in thedirectory as a potential recipient of the shared calendar and/or one ormore calendar events associated therewith, or dependent on authority ofthe recipient or member to invite secondary users/recipients.

Certain calendar management systems involve management of calendarsand/or events for users at the individual event level. In such systems,substantially no calendar-level management or grouped calendar eventsmay be provided. Therefore, in such systems, it may be necessary for ascheduler to manually gather and/or export multiple calendar events inorder to perform a single distribution of calendar events to a usergroup. In addition, in certain systems, updates and/or changes made toindividual calendar events may trigger multiple user alerts and/ornotifications due to management at the individual event-level versushigher-level calendar or subset of calendar alert and/or notificationmanagement.

Certain embodiments disclosed herein advantageously provide calendarmanagement systems and/or methods allowing for shared calendar usagewithout one or more of the various complexities and/or limitationsassociated with certain of the calendar systems described and/orreferenced above. For example, certain embodiments may not requirecalendar recipients to be registered with a calendar management systemor server prior to accessing shared calendars and/or calendar data. Incertain embodiments, a secondary recipient may be able to receiveup-to-date calendar event information without the scheduler or originalrecipient having to take substantial additional steps to update therelevant event(s) or notify the secondary recipient directly. Certainembodiments may further allow for sharing of a calendar, or subset ofcalendar events associated therewith, in a single process, rather thannecessitating the sending of multiple calendar event notifications.Certain calendar management systems/methods may further provide acalendar platform that may be configurable to interface with a computingdevice's native calendar application/software, or other externalcalendar system(s), thereby providing a single unified calendar systemthat integrates otherwise disparate calendar systems.

The systems and methods described herein provide a variety ofimprovements over certain calendar management paradigms. For example,embodiments provide a configurable, unified calendar platform thatallows for exchange and management of media items. Users may providemedia items to be associated with an event/meeting. The media items mayenhance the calendar platform by allowing the users to provideadditional information about an event/meeting. The media items may beindicated/identified using media data (e.g., identifiers, links to themedia items, etc.) which are associated with event/meeting. Users whoare allowed to access an event/meeting may use the media data to accessthe media items (e.g., to download/view the media items).

Embodiments further provide a configurable, unified calendar system thatallows for transmission and management of digital messages. Users maytransmit one or more messages about an event/meeting (e.g., users mayhave a discussion about the event/meeting). The messages may bestored/represented using discussion data which is associated with anevent/meeting. Users who are allowed to access an event/meeting may usethe discussion data to view messages (e.g., a discussion) about theevent/meeting. Users may also include media items as part of a message.In some embodiments, users may not be required to be registered with acalendar management system or server prior to accessing media itemsand/or messages associated with an event/meeting.

Example Calendar Management System

FIG. 7A is a block diagram of a calendar management system in accordancewith one or more embodiments disclosed herein. The system of FIG. 7Aincludes a network environment 100 that may comprise one or more hostservers 120, client devices 110, and/or other servers 170. The networkenvironment 100 can be connected by any network infrastructure 130,which may be public and/or private, using any suitable or desirableprotocol or combination of protocols. For example, in certainembodiments, one or more devices of the network environment 100 maycommunicate information over the public Internet network, such as viacellular data network(s), whereas one or more devices may furtherreceive information over local wired and/or wireless local area networks(e.g., Ethernet) connected to the Internet via an Internet ServiceProvider (ISP). In certain embodiments, one or more devices and/ornetworks may be implemented using a private network over, for example,Ethernet and/or radio network protocols.

The host server(s) 120 may contain a repository of calendar and/or userdata 122 as well as a calendar application server 124. The calendarand/or user data repository, or data store, 122 and/or the applicationserver 124 may reside on a single server or may be spread acrossmultiple servers, as desired or practical. As a whole, the hostserver(s) may be considered a single logical entity for simplicitypurposes as described herein; that is, references to a server or hostserver herein may represent one or more servers or devices configured toprovide server-type functionality and/or services. The applicationserver 124 may be implemented according to executable code and/orassociated server components used to support computing on the server120. The calendar/user data 122 may collectively comprise logical data,executable code, and/or associated components to support storage, datamanagement, and retrieval of the data. The calendar/user data 122 maycomprise calendar information consisting of one or more of various datastructures or data types. For example, calendar data may comprise one ormore calendar objects or data structures incorporating variouscalendar-related parameter(s), and/or calendar event objects or datastructures incorporating event-related parameter(s).

In one embodiment, the calendar/user data 122 may include media dataand/or discussion data. Media data may be data that indicates/identifiesone or more media items that are associated with or are included with anevent object (which represents an event/meeting). For example, the mediadata may include one or more of a name (or other identifier) for a mediaitem, a link to a location of the media item (e.g., a universal resourcelocator (URL)), a type for the media item (e.g., a video type, a picturetype, etc.). Discussion data may be data that indicates/represents oneor more messages (e.g., chat/text messages) that are associated with orare included with an event object. In some embodiments, the media datamay also be data that indicates/identifies one or more media items thatare to be included in messages (e.g., a discussion) associated with orincluded with an event object.

In one embodiment, the storage server 180 may store media items that areassociated with or are included with an event object. For example, auser of a client device 110 may add a media item (e.g., a digital movie)to an event/meeting. The client device 110 may be directed to store themedia item on the storage server 180 (e.g., to transmit the media itemto the storage server 180), or the client device 110 may transmit themedia item to the host servers 120 and the host servers 120 may storethe media item on the storage server 180. In one embodiment, the storageserver 180 may part of a cloud storage platform. For example, thestorage server 180 may be managed and/or hosted by cloud storagevendor/provider that provides storage capacity and/or services. Althoughthe storage server 180 is illustrated as being separate from the networkenvironment 100, one having ordinary skill in the art understands thatthe storage server 180 may be part of the network environment 100 inother embodiments.

As used herein, a media item may include an electronic file that can beexecuted or loaded using software, firmware or hardware configured topresent digital content (e.g., video, images, audio, text, etc.).Examples of media items include, but are not limited to, digitalimages/pictures, digital videos/movies, digital audio, streamingvideos/movies, audio clips, movie clips, TV clips, music videos, videoblogs, short original videos, pictures, photos, other multimediacontent, etc. A media item may also be referred to as multimedia, amultimedia item, a digital media, digital content, etc.

The host server(s) 120 may be configured to facilitate calendarinformation communication between the client devices 110, and possiblyother server(s) 170. Client devices 110 may exchange calendarinformation via the host server(s) 120 over the network 130, directlybetween client devices 110 via the network 130 and/or through directdevice-to-device information exchange, such as over a local pairing ornetwork connection (e.g., Bluetooth, near-field communication, infrared,etc.).

Other servers and services 170 may be provided using other logicalserver instances or included with the host server(s) 120. The otherserver and services 170 may provide additional services to the hostservers for support processing, or the services may be provided directlyto the client devices. Server features and services may be related tocalendar information processing and/or other context-driven features.Examples of other server services may include, but are not limited to,credit card processing/billing, video chat features, documentcollaboration, and the like. The other services may also provideadditional services or data to the client devices. Examples include butare not limited to map/navigation and traffic services,advertising/marketing services, local weather/news information alerts,and/or other services.

FIG. 7B is a block diagram of an example client device subsystem 110B.The client devices/systems 110B may be computing devices configured tofunction as one or more of a calendar scheduler 112 (e.g., where a usercreates and/or has authority/capability to create or manage a newcalendar or updates to an existing calendar) or a calendar user 114(e.g., where a user/device receives a new calendar or update to anexisting calendar).

FIG. 8 is a block diagram providing a representation of a host server220 according to one or more embodiments. The host server 220 mayprovide a representation of one or more of the host server(s) 120 shownin FIG. 7A and described above. Although the illustrated server 220includes various components illustrated together on a single host server120, it should be understood that the various components and modulesshown in FIG. 8 may be distributed across multiple servers, devices orlocations/sites. The host server 220 may contain a calendar/user datarepository 222, as well as one or more calendar application server 224components, which may be utilized for calendar management and/orcalendar information exchange between one or more client devices.

The calendar data store 222 may contain at least a portion of calendardata that is made available through various application server 224processes. Client devices (e.g., client devices 110 in FIG. 7A) may beable to access at least some data stored in the calendar data store 222via one or more services that may be provided by the application server224. For convenience, such services, among possibly others, arerepresented by a calendar data and access management module or interface225 a, as illustrated in FIG. 8. Calendar data may comprise metadataassociated with calendar events, users, as well as abstract objects formanaging calendar metadata. Such abstract objects for managing calendarmetadata may include control information for calendar state (e.g.private, shared, and/or published) as well as device synchronizationinformation such as active device lists, or incremental change records.The calendar data store 222 may be maintained in connection with one ormore processes designed to maintain integrity of the data and mayfurther provide various interfaces for interaction with the stored data.

The calendar data store 222 may maintain various types of calendarand/or user-related data. For example, the data stored in the data storemay include client account data 223 a which may be available to certainsystem processes for account maintenance and/or management. Clientaccount data 223 a may include unique client calendar codes/identifiersand/or account billing information. The client account data may furtherinclude security tokens/data for user authentication, such asfingerprint, retina, voice, or any other individual uniqueidentification data, which may be used to manage authorized access tocalendar data.

The access management module 225 a may be configured to interface withone or more other modules of the application server 224, such as asynchronization module 225 c and/or calendar integration module 225 d,to determine changes/updates to data stored in the calendar data store222 as well as to communicate the data to client devices 110, such asvia the synchronization module 225 c. The access management module 225 amay implement one or more forms of authentication of user clients usingnative device identification (e.g. phone # and text) or through externalauthentication sources (e.g. third-party social media sites).

Calendar and user data 222 may include network configuration defaults,custom device and/or calendar configuration, user account information,and other calendar-related data. Examples of user data 222 may includedevice configuration preferences stored on the host server for clientdevice synchronization and/or backup/retrieval, contact lists, ordefault greetings for calendar users.

In an embodiment, the client account data 223 a includes a collection(e.g., array) of calendar user/recipient objects, each associated with aunique user identifier. The unique user identifier may be any suitableor desirable identification value or data structure that may potentiallyuniquely be associated with a user, such as a phone number, social mediaaccount identifier or authorized social media account, unique username,email address, or the like. In certain embodiments, each user/recipientobject comprises one or more additional parameters, which may becustomized for a particular type of user or calendar. For example, eachuser/recipient object may comprise a parameter (e.g., array) identifyingeach calendar, or each calendar of a particular type, with which theuser/recipient is associated (i.e., belongs or has been invited and/oraccepted to).

The calendar data 223 b may comprise a listing or collection of calendarobjects, each of which may comprise one or more parameters providinginformation associated with the calendar. For example, a calendar objectmay comprise user/authorization, or classification, information, such asan identification of users associated with the calendar and associatedinformation indicating an authorization group/level, or classificationindicating a scope of involvement of the user with the calendar, whereinusers having different authorization levels or classifications mayreceive different subsets of the calendar data.

The calendar data and access module 225 a may comprise one or moreprocesses and/or information for facilitating sharing of calendar data223 b to users' client devices 110, as well as possibly to promote orensure confidentiality, integrity, and/or accuracy of calendar data. Thecalendar data store 222 may further include calendar access information,which may enable at least partially centralized management of asingle-calendar while at the same time individualized visibility and/ornotification of events associated with the shared calendar, such asbased on the user authorization/classification data of the clientaccount data 223 a or the calendar data 223 b discussed above. Enhancedcontrols may be configured when additional layers of confidentialityand/or control are desired for highly sensitive calendar/user data.

In certain embodiments, the distribution of calendar data 223 b and thesharing of calendar data between devices is not managed like certainother calendar systems in various respects. For example, calendar eventsmay be grouped together in any number of associatedgroups/levels/classifications for updates and/or distribution tocalendar users (e.g., calendar users 114 in FIG. 7B) while stillmaintaining ownership and visibility under a single master calendar(e.g., 410 in FIG. 10). In certain embodiments, a calendar scheduler maymanage a single calendar in its entirety using a selected usage template223 f, whereas calendar users may have individualized visibility onvarious devices and/or platforms via relatively simple access-sharingprotocols. Although FIG. 8 illustrates a variety of visually-separateblocks representing different types of data, such visual segregation isprovided for convenience and any data shown and/or described herein maybe integrated with, or separate from, any other data, depending on theembodiment. Furthermore, additional types of data not represented inFIG. 8 may be included in certain embodiments, and certain of theillustrated data types may be omitted, as desired or practical, incertain embodiments.

In some embodiments, the media data 223 j may include data that mayindicate and/or identify media items that are associated with events(which are included in one or more calendars). For example, the mediadata 223 j may indicate that a media item is associated with aparticular event for a particular calendar. In another example, themedia data 223 j may identify a media item. For example, the media data223 j may include an identifier (e.g., a name, an alphanumericidentifier, etc.) for a media item. In one embodiment, the media data223 j may be included as part of the calendar data 223 b.

In some embodiments, the discussion data 223 k may include data that mayindicate/represent one or more messages about an event/meeting (e.g., adiscussion between users about an event/meeting). For example, thediscussion data 223 k may include a record of chat messages exchangedbetween two users using the calendar platform. The discussion data 223 kmay also include and/or refer to media data when a message includes amedia item. For example, a user may transmit a message that may includea digital image of an event venue. The discussion data 223 k (which mayrepresent/indicate the message) may include media data for the digitalimage or may refer to media data for the digital image. In oneembodiment, the discussion data 223 k may be included as part of theclient communications data 223 e.

Example Calendar Share Identifiers (Share IDs)

The calendar data and access module 225 a, or other module of the server(or client) system, may be configured to generate calendar shareidentifiers (share IDs) or other data (e.g., unique identifiers) inresponse to certain events or requests, such as when a user indicates adesire to distribute a new calendar or a new set of calendar events toone or more users. For purposes of this disclosure, the terms “shareidentifier,” “share ID,” variations thereof and/or like terms may beused interchangeably. A unique share ID may allow for access to calendarevents associated or correlated with the share ID. The share ID can besent to users via the client communication management module 225 e orthrough any external process.

Use of share IDs may allow for a calendar scheduler 112 to easilydistribute access/authorization to a calendar to desired calendarrecipients/users. In certain embodiments, a share ID is the onlykey/item a calendar user 114 requires in order to access a calendarand/or to associate a calendar to a user's client device 110. Forexample, a share ID may be distributed via the calendarapplication/software 324 to a user's contacts or via a website, newsbulletin, and/or mass publication. The share ID may allow a calendaruser 114 to automatically receive calendar updates associated with theshare ID without requiring the calendar user to initiate checking forcalendar updates. In certain embodiments, a share ID plus secondaryidentification information may be required to access a calendar whereadditional security is desired. Examples of where a secondary level ofsecurity identification may be desired include calendar schedules fordoctor/client appointments, personal travel itineraries, and/or employeework schedules.

The relevant calendar/user data store may maintain user/share IDassociation data indicating for a given user the calendars that the userhas been authorized for and/or invited to through share ID distributionas described herein. In certain embodiments, acknowledgment by a user ofa received share ID may be required before user/share ID association iscomplete and represented, for example, at the backend calendarmanagement server.

The application server 224 may implement certain processes to supportuser device authentication and/or security management. Calendar data 223b on the server 220 may be stored in a secured manner and may beavailable only to authorized users and/or by authorized methods. Clientdevice security may be integrated as part of existing device securitymechanisms or may be independent of the devices mechanisms.

FIG. 9 is a block diagram providing a representation of a client device320 according to one or more embodiments. For example, the client device320 may represent an embodiment of one or more client devices of theclient subsystem 110 of FIG. 7A and described above. With furtherreference to FIG. 8, the application server 224 may implement certainprocesses to support synchronization and communications management 225c. Such processes may maintain synchronization of calendar information223 b between client devices 110. The server synchronization module 225c may work in conjunction with device synchronization modules 325 c(shown in FIG. 9) to ensure the accurate and/or integrity of informationtransferred between client device(s) and host server(s) when a calendarupdate has been published or any other triggering event occurs. Forexample, one such triggering event may be after a scheduler has made oneor more changes to a calendar and sets the calendar state to “publish,”which may trigger the application server to automatically send anotification and update availability to devices as managed by thesynchronization module 225 c. The synchronization management processesmay also support information transfers among client devices for clientcommunication data 323 e (see FIG. 9).

The synchronization module 225 c may support synchronization of calendardata 223 b between the server(s) and device(s), as well as between localdevice calendar data and the device's native calendar data 323 k. Forexample, in one embodiment a synchronization module may maintain a listof active users/devices connected to the system to target real-timeinformation exchanges between the devices. Another embodiment may allowfor a user/device to query the application server 224 to determine acalendar state and determine if a refresh of calendar data is required.The synchronization module 225 c may manage conflicts among calendarevents and allow the user to respond to the conflict. Examples ofconflicts may be event overlap or employee schedule maximums.

The synchronization module 225 c may also support synchronizationbetween external calendar systems and the calendar system 100 (see FIG.7). This synchronization may be necessary if a source of calendarinformation is another externally-maintained calendar system or asbetween multiple networks of calendar systems. Examples of possibleexternal calendar system interfaces may be Microsoft Exchange or GoogleCalendar, or other calendar platforms. In certain embodiments,synchronization and integration processes may support calendar and userdata integration between external calendar systems and make themavailable to calendar users 114 within the calendar application withoutadditional user action.

The synchronization and communications module 225 c may containprocesses and data required to facilitate communications among hostservers (e.g., host server(s) 120 in FIG. 7A), client devices (e.g.,client device(s) 110 in FIG. 7A), and/or other servers (e.g., server(s)170 in FIG. 7A). Communications may be system process data interactions(e.g. data synchronization, system updates, session management) and/orclient device user interactions (e.g. text, video chat, documentexchanges). For example, additional information exchanges may be usedfor team coordination of tasks or assignments related to an event, orfor confidential payment service processing for a scheduled service. Incertain embodiments, the synchronization and communications module 225 cmay support client communications via direct device to devicecommunication, via host servers, and/or via external services depending.The communication module may support real-time and/or asynchronouscommunications between users within the system. For example, users mayexchange messages (e.g., chat messages, text messages, etc.) to discussan event/meeting (e.g., to discuss possible venues, agendas,transportation to the event, etc.). The messages may be associated withan event/meeting and may be stored/represented using discussion data.

The communication process may be initiated at any time by userinteraction with the device, by a system event on the user's behalf,and/or by another trigger event of the like. Client communications maybe associated to a calendar event when initiated within the context of acalendar event.

Example Cross Platform Calendar Integration

With further reference to FIG. 8, the calendar application 224 maycontain calendar integration management processes 225 d to supportimport/export and/or conversion of calendar information between externalcalendar data types and/or various calendar systems. In certainembodiments, calendar integration data 223 d may contain conversionmappings of possible data types for import/export of calendarinformation between systems and/or devices. The calendar integrationmodule allows for the communication between external calendar systemsand between the proprietary calendar data type and native devicecalendar data types. The calendar integration module allows for theintegration of the system calendar information with any calendarplatform.

The calendar integration module 225 e is critical to supporting multiplecalendar data import/export and distribution of the calendar system onmultiple device platforms. The calendar integration module allows forthe calendar system to bridge calendar platform boundaries and for thecalendar system to work across current technical limitations. In certainembodiments, the calendar integration module 225 e may provide linkageto an external calendar system where a calendar scheduler wishes toshare calendar events from the external calendar system without exposingaccess credentials to and/or awareness of the external calendar system.

For example, a calendar scheduler (e.g., calendar scheduler 112 in FIG.7B) may desire to share publicly-specific calendar event informationfrom a work calendar system. The calendar event information may bereoccurring but may have additional information updated regularly withinthe calendar event. The calendar integration module may allow for theuser to link to the work calendar system with appropriate credentials toassociate specific calendar items to be grouped by a share ID. The shareID may be publicly distributed and calendar users may automatically beprovided updates of the calendar events whenever the calendar events areupdated within the work calendar system.

With respect to FIG. 7A, the calendar integration module may beimplemented by the host servers 120, by the client devices 110, by otherservers 170, or by any combination thereof.

The calendar application/software 224 may contain data type definitionsand patterns of usage for calendar data according to one or moreembodiments. Usage templates 223 f may define allowable parameters ofuser interactions for specific use cases. The usage templates may beconfigured and customizable as needed for efficient calendar schedulingwhere predetermined interactions and/or behaviors may facilitate ease ofcalendar entry and management. Examples of possible patterns may includecalendar entry for team events, client/patient appointments, andemployee schedules.

The usage templates 223 f may facilitate relatively efficient andeasy-to-use user interaction to calendar data. Specialized controlledmethods of user interaction with calendar data may include, but are notlimited to, data entry, view/display, notification alerts, and deviceinterface interactions. The calendar usage template modules may use anysystem or device data available such as calendar data, device sensorydata, and event trigger data. Configurable behaviors may also includenotification or a prompt when schedule conflicts are detected by thesystem.

Each template may have a unique set of calendar event attributes as wellas specific available behavior methods to act upon the calendar data.The combination of data and interaction methods is identified by thetemplate. Interaction methods may also include specific processsequencing or event triggers.

FIG. 9 shows a block diagram illustrating an embodiment of a clientdevice 320. Although the various components are shown together ascomponents of a single client device 320, it should be understood thatthe various components may be distributed across multiple devices or acluster of devices. The client device 320 may contain calendar and/oruser data maintained in a data store 322, as well as one or morecalendar application modules 324, which may be used for calendarmanagement and/or calendar data exchange between client devices (e.g.,client devices 110 in FIGS. 7A, 7B).

The calendar application 324 and calendar/user database 322 may containsome or all of the data and/or processes to implement the calendarsystem functionality on the device. The device OS/API 326 may provideone or more interfaces to general device services, such as data storageor memory, user interface components, and/or network layercommunications. The device OS/API may also provide certaindevice-specific interface(s) to native device calendar data and/orsensor or user context data.

The calendar data 322 repository may contain the device's local calendarinformation, which may comprise at least a portion of calendar data asidentified by share IDs that is available through the calendarapplication 324 process(es). In certain embodiments, a user may accessthe device's calendar repository 322 via the calendar data and accessmanagement 325 a interface(s)/module(s). Calendar data may comprisecertain metadata associated with calendar events, as well as possiblyabstract objects that may be required or useful in managing calendarmetadata. The calendar data store 322 may be maintained in connectionwith one or more processes designed to maintain integrity of the data,and may provide interfaces for interaction with the stored data. Thedevice's calendar data 322 may contain individualized calendar dataspecifically tailored to the user as determined by the calendar data andaccess management module 325 a, such as one or more calendar objects andevent objects, as described above with respect to the maintenance ofsuch data by the system illustrated in FIG. 8.

The calendar data store 322 may maintain various types of calendarand/or user-related data. For example, the data stored in the data storemay include client account data 323 a, which may be available to certainsystem processes for account maintenance and/or management. Clientaccount data 323 a may include unique client calendar codes/identifiersand/or account billing information. The client account information 323 amay further include security tokens/data for user authentication such asfingerprint, retina, voice, or any other individual uniqueidentification data, which may be used to manage authorized access tocalendar data 323 b.

The access management module 325 a may be configured to interface withone or more other modules of the calendar application 324, such as asynchronization and communications module 325 c and/or calendarintegration module 325 d to determine changes/updates to data stored inthe device's calendar data store 322 as well as to communicate the datato host servers 120 and client devices 110, such as via thesynchronization module 325 c.

Calendar and user data 322 may include network configuration defaults,custom device or calendar configuration, user account information,and/or other calendar-related data. Examples of user data 322 mayinclude device configuration preferences stored on the host server forclient device synchronization and/or backup/retrieval, contact lists, ordefault greetings for calendar users.

The calendar data and access module 325 a may comprise one or moreprocesses and/or information for facilitating using and sharing ofcalendar information 323 b to other client devices as well as possiblyto promote or ensure confidentiality, integrity, and/or accuracy ofcalendar data. The calendar data store 322 may further include calendaraccess information, which may enable at least partially centralizedmanagement of a single-calendar while at the same time individualizedvisibility and/or notification of events associated with the sharedcalendar. A user may interact with the calendar data 323 b to viewspecific calendar events or the entire calendar in entirety.

In certain embodiments, the distribution of calendar data 323 b and thesharing of calendar data between devices is not managed like certainother calendar systems in various respects. For example, calendar eventsmay be grouped together in any number of associated groups for updatesand/or distribution to calendar users 114 while still maintainingownership within a single master calendar 410. Such grouping of calendardata and events may be facilitated through the use of calendar, user,and/or event objects, which may comprise parameter data associatedcalendars with user identifiers and/or share IDs, as well as associatingusers with associated calendars and/or events. In certain embodiments, acalendar scheduler may manage a single calendar in its entirety using aselected usage template 323 f, whereas calendar users may haveindividualized visibility on various devices and/or platforms viarelatively simple access-sharing protocols.

The calendar data and access module 325 a may be configured to generateunique share identifiers (share IDs) or other data (e.g. uniqueidentifiers) in response to certain events or requests, such as when auser indicates a desire to distribute a new calendar or a new set ofcalendar events to one or more users. A unique share ID, which may bestored as part of a calendar object, may allow for access to calendarevents associated or correlated with the share ID. The share ID can besent to users via the synchronization and communication managementmodule 325 c or through any external process.

In certain embodiments, when an authenticated client device receives orhas a unique calendar ID added to the user/devices calendar list, asingle notification message may be sent to the user/device and allrelevant calendar data may be available to the client device to refreshthe local calendar data.

The device security module 325 b may contains processes and datarequired to support user device authentication and security management.Calendar information 323 b on the device may be stored in a securedmanner and available only to authorized users and/or by authorizedmethods. The client device security 325 b may be integrated as part ofexisting device security mechanisms or may be independent of the devicesmechanisms as needed.

The calendar application 324 may implement certain processes to supportsynchronization and communications management 325 c. Such processes maymaintain synchronization of calendar information 323 b between a hostserver (e.g., host server(s) 120), other client devices 110, otherservers 170, and/or native device calendar data (if applicable) 323 k.The client device's synchronization module 325 c may work in conjunctionwith host server synchronization modules to ensure the accuracy and/orintegrity of information transferred between client devices and hostserver(s) when a calendar update has been made or any other triggeringevent occurs. The synchronization management processes may supportinformation transfers/updates among client devices for clientcommunication data 323 e.

In certain embodiments, the synchronization module 325 c may managesynchronization of calendar data 323 b between the host servers andclient devices as well as possibly between the local device calendardata 323 b and the device's native calendar data 323 k. The module maymanage any conflicts among calendar events and allow the user to respondto the conflict. Examples of conflicts may be event overlap or employeeschedule maximums.

The device synchronization module 325 c may also support synchronizationbetween external calendar systems and the calendar application 324. Thissynchronization may be necessary or desirable if a source of calendarinformation is another, externally-maintained, calendar system, or asbetween multiple networks of calendar systems. An example of possibleexternal calendar system interfaces may be Microsoft Exchange, GoogleCalendar, or the like.

The synchronization and communications module 325 c may contain certainprocesses and/or data required to facilitate communications amongrelevant host server(s), client device(s), and/or other server(s).Communications may be system process data interactions (e.g. datasynchronization, system updates, session management) or client deviceuser interactions (e.g. text, video chat, document exchanges). Thesynchronization and communications module 325 c may support clientcommunications via direct device-to-device communication, via hostservers, or external services, depending possibly on implementationconfiguration. The communication module may support substantiallyreal-time and/or asynchronous communications between users within thesystem.

In certain embodiments, the communication process(es) may be initiatedsubstantially at any time by user interaction with the device and/or onthe user's behalf when triggered by a system event. Clientcommunications may be associated with a calendar event when initiatedwithin the context of a calendar event.

The various components of FIG. 9 may provide cross-platform calendarintegration functionality. For example, the calendar integration module325 d may contain system processes and data needed to import/export orconvert calendar information between any calendar data types. Thecalendar integration data 323 d may contain conversion mappings ofvarious data types possible for import/export of calendar information.In certain embodiments, the calendar integration module may allow forthe communication between external calendar systems and/or between theproprietary calendar data types disclosed herein and native devicecalendar data types. The calendar integration module 325 d may allow forthe integration of the system calendar information with any calendarplatform.

The calendar integration module 325 d may serve to supporting multiplecalendar data import/export and/or distribution of the calendar systemon multiple device platforms. In certain embodiments, the calendarintegration module may allow for the calendars to cross platformboundaries and for the calendar system to work across certain currenttechnical limitations. The calendar integration module 325 d may beimplemented by the host servers, by the client devices, by otherserver(s), or by any combination thereof.

The calendar usage/event module 325 f may contain the data typedefinitions and/or patterns for usage for calendar types to be used bysystem processes and client devices. The usage templates may defineallowable parameters of user interactions for specific use cases. Incertain embodiments, the usage templates 323 f can be configured andcustomizable as needed for efficient calendar scheduling. Examples ofusage templates may include calendar entry parameters and behaviors forteam events, client/patient appointments, and employee schedules, amongothers.

These usage templates may facilitate relatively efficient andeasy-to-use user interaction to calendar data. The specializedcontrolled methods of user interaction to calendar data may include, butis not limited to, user interface controls, data entry, view/display,and/or notification alerts. The calendar usage template modules may useany system or device data available, such as calendar data, devicesensory data, event trigger data, and/or combinations thereof.Configurable behaviors may also include notification or a prompt whenschedule conflicts are detected by the system.

Each template may have a unique set of calendar event attributes as wellas specific user behavior methods to act upon the calendar data. Thecombination of data and interaction methods may be identified by thetemplate. Interaction methods may also include specific processsequencing or event triggers. Event parameters may be internal tocalendar application processes or derived from device sensor and/orcontext information 323 j. The calendar usage and event module 325 f mayinterface with the device's sensors and context information 323 j toprovide parameter inputs for the usage templates were applicable.

Examples of sensory information may include GPS location and movement,network availability, media availability (phone, camera, etc.), andsystem services availability. Examples of device context information mayinclude phone status, call ID, application status, date/time informationwithin application text, and voice recognition.

In some embodiments, the media data 323 n may include data that mayindicate and/or identify media items that are associated with events(which are included in one or more calendars). For example, the mediadata 323 n may indicate that a media item is associated with aparticular event for a particular calendar. In another example, themedia data 323 n may identify a media item. For example, the media data323 n may include an identifier (e.g., a name, an alphanumericidentifier, etc.) for a media item. In one embodiment, the media data323 n may be included as part of the calendar data 323 b. The mediaitems may be provided by a user using various graphical user interfaces(GUIs) presented by the user I/O module 390 (as discussed in more detailbelow).

In some embodiments, the discussion data 323 m may include data that mayindicate/represent one or more messages about an event/meeting (e.g., adiscussion between users about an event/meeting). For example, thediscussion data 323 m may include a record of chat messages exchangedbetween two users using the calendar platform. The discussion data 323 mmay also include and/or refer to media data when a message includes amedia item. For example, a user may transmit a message that may includea digital image of an event venue. The discussion data 323 m (which mayrepresent/indicate the message) may include media data for the digitalimage or may refer to media data for the digital image. In oneembodiment, the discussion data 323 m may be included as part of theclient communications data 323 e. A user may transmit/provide one ormore messages using various GUIs provided by the user I/O module 390 (asdiscussed in more detail below).

The client device 310 may further include a user input/output module390, which may comprise one or more hardware and/or software componentsfor receiving user input. For example, in certain embodiments, the userI/O module 390 may comprise one or more of a keyboard, touchpad,microphone, speaker, wireless and/or wired communication controllerconfigured to communicate according to one or more protocols, or thelike. The user may utilize the user I/O module 390 to generate newcalendar and/or event objects, input share IDs or other identifiers orauthorization codes/values.

Although FIG. 9 illustrates a variety of visually-separate blocksrepresenting different types of data and/or functional modules, suchvisual segregation is provided for convenience and any data and/orfunctionality shown and/or described herein may be integrated with, orseparate from, any other data and/or functionality, depending on theembodiment. Furthermore, additional types of data and/or functionalitynot represented in FIG. 8 may be included in certain embodiments, andcertain of the illustrated data types and/or functional modules may beomitted, as desired or practical, in certain embodiments.

FIG. 10 is a block diagram illustrating a calendar data managementsystem 400 according to one or more embodiments. The system 400 mayrepresent one or more embodiments of possible instances of a calendardata type which may be used in connection with one or more embodimentsof calendar management systems and/or methods disclosed herein. Incertain embodiments, a master calendar 410 (e.g., calendar object) maybe managed by an individual user, or management may be shared among agroup of users. A calendar may contain one or more calendar events 430(e.g., calendar event objects), wherein the calendar events 430 mayrepresent individual files, data structures, or collections of the same.Calendar events 430 may contain various parameters/attributes, such asdate, time start, time end, organizer, invitees, and/or additional typesof information.

In typical calendar exchanges, a calendar may be managed on a user's owncalendar and then an event is shared or pushed to another user'scalendar. In certain embodiments, updates to the calendar user's eventmay be implemented by sending another updated calendar event. In certainalternative embodiments, the calendar may be shared with a calendar userto allow access to the entire calendar. At this point, the calendar usermay go to the shared calendar to access any updated information.

Here, the calendar data type may allow for calendar events 430 to bemanaged on a single master calendar 410 with the additional capabilityfeature of granular visibility of calendar events. The calendar may bemanaged by an individual or group in similar fashion to certaintraditional calendar systems. Additionally, individual calendar eventsor groups of calendar events 430 may be associated with individuals orgroups. A usage template 450 applied to the calendar event may determinethe default for whether an individual or group is associated. Aninstance of Share ID 422 may be associated with one or more calendarevents 432 to create a unique calendar group 442 that can be shared withany calendar user or group using the Share ID 422. Individual calendarusers 470, through the use of one or more Share IDs on a device, mayhave access to the aggregate of associated calendar events 440, whilepossibly not having access to the entire calendar.

Example Calendar Management Operation

FIG. 11 is a flow diagram illustrating a process for the creation andpublishing of a Share ID associated with a calendar, calendar event,and/or group of calendar events by a calendar scheduler (e.g., calendarscheduler 112) according to one or more embodiments. In certainembodiments, a calendar scheduler/user may have created and saved acalendar in a local and/or remote data store 502. As a default, acalendar object may start in a private (non-shared) state which couldallow for a scheduler to make several updates before making the calendarand/or certain data associated therewith available to others. Severalupdates may be made to the saved calendar before moving out of thisprocess step. After a calendar and/or group of calendar events has beencreated and/or identified, the process 500 may involve receiving arequest for the creation of a Share ID to associate with a calendar, acalendar event, and/or group of calendar events 504. Upon receipt of therequest, the system may initiate the creation of the Share ID asrepresented in process step 506. The Share ID creation may be processedon the device in whole, and/or may include other/additional requestsprovided to a host server to create and/or validate the Share ID. Uponreceipt of a Share ID, the process 500 may involve the calendar systemupdating the calendar data in the device's data store with the new ShareID as shown in 508, and may then make the Share ID available to thecalendar scheduler.

In certain embodiments, after a calendar scheduler has received agenerated Share ID, a calendar scheduler may choose to distribute theShare ID via the calendar system through a selection of contacts 512,and/or a calendar scheduler may choose to distribute the Share ID viaexternal processes. In some embodiments, the system may push anotification message directly to selected calendar users based oncalendar membership information.

After a Share ID has been created and/or the calendar system hasreceived the request to distribute the Share ID to a set of users, thedevice calendar system may provide the calendar update to the hostserver for processing, as shown in block 514. The calendar update mayinclude calendar data and/or associated metadata, such as where a newcalendar has been generated, and/or the calendar update may includechanges for dissemination to the host and other devices using the ShareID.

Additional process steps may include a calendar scheduler receivingupdates of Share ID use by a calendar user(s), and/or subsequentcommunications between client devices (e.g., client devices 110) whichmay or may not be associated to specific a calendar, and/or Share ID.The process 500 of FIG. 11 may be performed at least in part under thecontrol of one or more processors or controllers of a computing device.

FIG. 12 is a flow diagram illustrating a process for storing and/ordistributing calendar data by a host server (e.g., host server 120 inFIG. 7A) according to one or more embodiments. In certain embodiments, ahost server may receive a request to update calendar data. In certainembodiments, the request may indicate a data trigger identifying theneed to update other user/device calendars. A request may come from acalendar scheduler, calendar user (e.g., calendar user 114), othercalendar system(s), and/or other servers/services. Calendar data may beconverted into calendar system data types if received from a differentcalendar system format through by an integration management module, forexample. In one embodiment, the request may include and/or refer tomedia data and/or discussion data. For example, if a user adds one ormore media items to an event/meeting, the event/meeting (e.g., the eventobject) may be updated to include media data for the one or more mediaitems. In another example, if a user transmits a message (e.g., a chatmessage) about an event/meeting, the event/meeting (e.g., the eventobject) may be updated to include the discussion data.

An update to calendar data may contain calendar data for a new calendar(e.g., calendar object), and/or updates to a current calendar, asspecified. After receipt and/or possible conversion of calendar dataformats, the calendar data may be updated in the system calendar datastore 604.

After the system calendar data store is updated, the calendar system maygenerate synchronization data (block 606) to be distributed to clientdevices. For example, synchronization data may comprise a set ofnotifications to push to users via a sockets service list and/orassociated targets for calendar ID. The notification on the clientdevice may trigger a pull of the calendar data. Synchronization data mayinclude, but would not be limited to, notification messages, calendarchange history, summarized calendar data, and/or other data. In certainembodiments, this data may be substantially immediately processed by thesystem, such as where the client devices are actively connected to thecalendar system and an immediate push of calendar data updates isdesired or possible, such as through the use of sockets and a targetlist of active users/devices. In certain other embodiments, this processstep may not be immediate, and/or instead triggered by a calendar userrequest for an update of calendar data.

After synchronization data has been created, the system may providecalendar data updates to a client device as identified by the Share IDin process step 608. A calendar user requesting calendar data may beprovided updates according to one or more identified Share ID(s). Theprocess 600 of FIG. 12 may be performed at least in part under thecontrol of one or more processors or controllers of a computing device.

FIG. 13 is a flow diagram illustrating a process for the use of a ShareID by a calendar user associate one or more calendars to a client deviceaccording to one or more embodiments. In step 702, a Share ID isreceived by the calendar system on a client device. In certainembodiments, the receipt of a Share ID may be via the calendar systemwhereas in other certain embodiments, the receipt of a Share ID may beinitiated via calendar user entry, and/or other process.

Upon receipt of a new Share ID, the calendar system may store the ShareID in the device's local data store 704 for persistent storage ofcalendar Share IDs.

After update of the data store with a new Share ID, a device's calendarsystem may request calendar updates from a host server and/or otherserver/service, as shown in block 706. In certain embodiments, therequest for calendar updates may be initiated by a calendar user, and/orautonomously by the calendar system. The request for calendar updatesmay include one or more Share ID(s). In addition to providing initialcalendar information, the host server may provide the device and ShareID information to synchronization and/or communication modules forimmediate registration for future calendar updates.

In step 708, a device's calendar system receives calendar data aspossibly determined by the synchronization and communication modules.Upon receipt of calendar data, the calendar system may convert thecalendar data into a calendar system data type. In certain embodiments,a conversion of data into a device's native calendar data type may occurwhere an update of a device's native calendar system is desired. Afterreceipt and/or possible data conversion, the calendar system may storethe calendar data to the device's calendar data store in step 710. Incertain embodiments, schedule conflict alerts may be raised to the userat this time for resolution. In one embodiment, media data and/ordiscussion data may be included as part of the calendar data. Media dataidentifies one or more media items associated with an event/meeting anddiscussion data represents one or more messages (e.g., a discussion) foran event/meeting, as discussed above.

In the next step 712, the calendar system provides the calendar data tothe device OS/API for possible further processing such as usernotification, device event context updates, and/or native calendarupdates.

In certain embodiments, additional process steps may include clientcommunications such as secondary distribution of Share ID(s), textand/or video messaging, device location information, device calendarstatus receipt, external system notifications, and/or accountmaintenance activities. The process 700 of FIG. 13 may be performed atleast in part under the control of one or more processors or controllersof a computing device.

FIG. 14 is a flow diagram illustrating a process for the refresh ofcalendar information on multiple devices by an event trigger,notification and update according to one or more embodiments. In step802, the system has received an update of information for a specificevent, group of events, calendar, and/or group of calendars. The systemupdate may be anywhere the calendar information has been persisted. Theupdate of information may be to calendar specific information and/or tocalendar metadata as determined by specific embodiment. In someembodiments, the update of information may include media data and/ordiscussion data.

In step 804, the system checks for a combination of information elementsdetermined to require and/or desire an update of information on anyother user/client device. For example, in some embodiments thetriggering information may be a calendar status change to a “published”state, change to a calendar event time/location, and/or a preset timeduration interval from a prior update status. In another example, addingmedia data (e.g., adding a new media item to an event/discussion),modifying media data (e.g., changing media items associated with anevent/discussion), and/or adding discussion data (e.g., adding one ormore messages to a discussion for an event/meeting) may betriggers/triggering information. Multiple combinations of event triggersmay be configured as needed to achieve an appropriate balance betweenresource utilization and immediate information availability and refreshfrequency.

Once the requirement for a calendar update has been made, step 806depicts the creation of appropriate notification information based onthe notification event triggering parameters. In some embodiments, thenotification information may be tailored as desired for individualuser/device consumption or otherwise maintained at the calendar/eventlevel.

In step 808, the creation of a calendar update information package in anembodiment represents the preparation of a set of calendar informationfor delivery to user/devices. Creation of an update information packagemay be done in any way to facilitate the refresh of calendar informationappropriate to the triggering event determined in 804. In someembodiments, the range of information package data may be from anincremental change information package and/or through a complete refreshof calendar information. The information package will contain allinformation required by a user/device to be in sync with the calendarinformation as per calendar update.

Upon package of calendar update information, the system will identifyand verify any active user/devices to be targeted for calendar updatenotification and information update in step 810. An example of suchidentification could be to gather a status on users/devices in currentcommunication to the system. The determination of an “active”user/device may be based on the end-to-end communication platformavailable between devices and may be tailored as such to maximizeefficacy.

In step 812, the system will transmit the calendar update informationpackage as has been determined for a specific user/device as identifiedby step 810. Whether synchronous or asynchronous communications is usedmay be determined by embodiment and communication platformimplementation.

In some embodiments, the user/device may continue according to generaldevice update processing similar to that shown in step 708.

FIG. 15 is an entity-relationship diagram illustrating a conceptualmodelling the relationship amongst calendar, events, tasks, and membersentities according to one or more embodiments.

The calendar 910 may represent one or more embodiments of possibleinstances of a calendar entity which may be used in connection with oneor more embodiments of calendar management systems and/or methodsdisclosed herein. In certain embodiments, a calendar 910 may represent asingle instance of a calendar or may represent a group of one or moreindividual calendar instances. A calendar may have an association to oneor more events 920. A calendar may also have an association to one ormore tasks 930 and an association to one or more members 940.

The event 920 may represent one or more embodiments of possibleinstances of an event entity which may be used in connection with one ormore embodiments of calendar management systems and/or methods disclosedherein. In certain embodiments, an event 920 may represent a singleinstance of an event or may represent a group of one or more individualevent instances. An event may have an association to one or morecalendars 910. An event may also have an association to one or moretasks 930 and an association to one or more members 940.

The task 930 may represent one or more embodiments of possible instancesof a calendar entity which may be used in connection with one or moreembodiments of calendar management systems and/or methods disclosedherein. In certain embodiments, a task 910 may represent a singleinstance of a task or may represent a group of one or more individualtask instances. A task may have an association to one or more calendars910. A task may also have an association to one or more events 920 andan association to one or more members 940.

The member 940 may represent one or more embodiments of possibleinstances of a calendar entity which may be used in connection with oneor more embodiments of calendar management systems and/or methodsdisclosed herein. In certain embodiments, a member 940 may represent asingle instance of a member or may represent a group of one or moreindividual member instances. A member may have an association to one ormore calendars 910. A member may also have an association to one or moreevents 920 and an association to one or more tasks 930.

FIG. 16 is a diagram illustrating an example GUI 1000 according to oneor more embodiments. In one embodiment, the GUI 1000 may be an interfacefor creating a new event/meeting and/or modifying an existingevent/meeting. The GUI 1000 may be presented by a calendar application(e.g., an app, an application, a program, a software module/component,etc.) that may allow a user to create/modify events/meetings and may beused to invite other users to the event/meeting. The calendarapplication (e.g., app) may be executing/operating on a computing device(e.g., a client device) of a user (e.g., a smartphone, a tabletcomputer, etc.). In another embodiment, the GUI 1000 may be a webpageprovided/presented by a calendar platform. For example, the GUI 1000 maybe presented by and/or displayed within a web browser when the useraccesses or logs into a calendar platform via the web browser. The GUI1000 includes a buttons 1005, 1010, 1015, 1030, 1035, 1040, 1045, and1050. The GUI 1000 also includes checkboxes 1020 and 1025. Although theGUI 1000 is illustrated using buttons, checkboxes, text fields, etc.,one having ordinary skill in the art understands that other embodimentsmay use links and/or other graphical user interface controls or elementsin place of one or more of the buttons, checkboxes, text fields, etc.

Button 1005 may allow the user to specify a name for the event (and/orto modify the name for the event). Activating (e.g., pressing, clicking,tapping, etc.) button 1005 may cause the GUI 1000 to present a textfield that may allow the user to specify/modify the name for the event.Buttons 1010 and 1015 may allow the user to specify/modify a start timeand an end time for the event, respectively. Activating button 1010 orbutton 1015 may cause the GUI 1000 to present a text field or anotherGUI that displays a monthly calendar, to allow the user tospecify/modify the start time or end time.

Activating button 1035 may cause GUI 1000 to present a text field or amap that may allow the user to specify/modify the location for themeeting/event. Activating button 1040 may cause the GUI 1000 to presenta text field to allow the user to specify/modify notes and/or otherinformation about the event/meeting (e.g., the purpose of the meeting,an agenda, items to bring to the meeting, etc.). Activating button 1045may cause the GUI 1000 to present a list of calendars that may includethe event/meeting. This may allow the calendar platform to associate themeeting/event (or the event object for the meeting/event) with differentcalendars (or calendar objects). Activating button 1050 may cause theGUI 1000 to present a monthly calendar, a clock, a text field, etc.,that may allow the user to specify a time for a reminder (for theevent/meeting).

Activating button 1030 may cause the GUI 1000 to present buttons, lists,text fields, other user interface elements, etc., to allow the user toindicate one or more media items that should be included in and/orassociated with the event/meeting (which are discussed in more detailbelow). This may allow the user to provide more information about theevent/meeting in the event object. For example, including media itemsmay allow the user to provide video/pictures of an event venue,video/pictures of speakers/attendees of the event, video/pictures offood that will be provided at the event, etc. As discussed above, amedia item may be content such as digital video, digital images, digitalaudio, text, etc.

FIG. 17 is a diagram illustrating an example GUI 1100 according to oneor more embodiments. In one embodiment, the GUI 1100 may be an interfacefor selecting one or more media items to be included in and/orassociated with an event/meeting. The GUI 1100 may be presented by acalendar application (e.g., an app, an application, a program, asoftware module/component, etc.) executing on a user's computing device,as discussed above. In another embodiment, the GUI 1100 may be a webpageprovided/presented by a calendar platform, as discussed above. The GUI1100 includes a buttons 1105, 1110, and 1115. Although the GUI 1100 isillustrated using buttons, one having ordinary skill in the artunderstands that other embodiments may use links and/or other graphicaluser interface controls or elements in place of one or more of thebuttons.

As discussed above, a user may want to include one or more media items(e.g., videos, images, audio, etc.) in an event/meeting that has beenscheduled on one or more calendars. The GUI 1100 may be presented whenthe user activates (e.g., clicks, taps, selects, presses, etc.) button1030 illustrated in FIG. 16. Activating button 1105 may allow the userto select one or more media items from that are stored on the user'scomputing device (e.g., that are stored on the user's smartphone ortablet computer). In one embodiment, a media viewer application (e.g., adefault “camera roll”) of the device may be presented when the useractivates button 1105. In another embodiment, the GUI 1100 may presentanother user interface that allows the user to view/select media itemsstored on the user's computing device (e.g., the calendar app mayinclude a media viewer/selector).

Activating button 1110 may allow the user to create one or more newmedia items (e.g., to take a picture and/or record a video). In oneembodiment, a camera application (e.g., a default camera app on asmartphone/tablet computer) may be presented when the user activatesbutton 1110. In another embodiment, the GUI 1100 may present anotheruser interface to take one or more pictures/videos (e.g., the calendarapp may include a camera app). Activating button 1115 may allow the userto return to the previous GUI (e.g., GUI 1000 illustrated in FIG. 16).

FIG. 18 is a diagram illustrating an example GUI 1200, in accordancewith some embodiments of the present disclosure. In one embodiment, theGUI 1200 may be an interface for selecting one or more media items to beincluded in and/or associated with an event/meeting. The GUI 1200 may bepresented by a media viewer/player application (e.g., an app, anapplication, a program, a software module/component, etc.) executing ona user's computing device, as discussed above. The GUI 1200 includesbuttons 1205, 1210, 1215, and 120. Although the GUI 1200 is illustratedusing buttons, one having ordinary skill in the art understands thatother embodiments may use links and/or other graphical user interfacecontrols or elements in place of one or more of the buttons. The GUI1200 may be presented by a media player/viewer application (e.g., a“camera roll”). The media player/viewer application may be a separateapplication or may be part of the calendar application.

Activating button 1205 (e.g., the “All Photos” button) may allow theuser to view a list (e.g., a complete list) of all of the media items(e.g., videos, pictures, etc.) that are stored on the user's computingdevice. For example, activating button 1205 may cause a list ofthumbnails to be presented to the user. The thumbnails may be previewsof the videos and/or images that are stored on the user's computingdevices. As illustrated in FIG. 18, the button 1205 may include athumbnail (e.g., preview) of one or more of the media items that arestored in the user's computing device. Activating one of the buttons1210, 1215, or 1220 may allow the user to view different groups (e.g.,albums) of media items. For example, activating button 1210 may allowthe user to view a list of media items (e.g., videos and/or pictures)that are in the “Selfies” group/album. Each of the buttons 1210, 1215,and 1220 may also include a thumbnail of one or more media items thatare in a respective group/album. For example, button 1215 may include athumbnail of one or more media items in the “January” group/album.

The groups/albums illustrated in FIG. 18 are merely examples. One havingordinary skill in the art understands that that a user's computingdevice may include fewer or more albums and that the albums may sortmedia items various factors/criteria such as time, location, subjectmatter, user preferences, etc.

FIG. 19 is a diagram illustrating an example GUI 1300, in accordancewith some embodiments of the present disclosure. In one embodiment, theGUI 1300 may be an interface for selecting one or more media items to beincluded in and/or associated with an event/meeting. The GUI 1300 may bepresented by a media viewer/player application (e.g., an app, anapplication, a program, a software module/component, etc.) executing ona user's computing device, as discussed above. The GUI 1300 may bepresented when the user activates button 1205 (illustrated in FIG. 18).The GUI 1300 includes a plurality of thumbnails 1301-1313 (e.g.,previews of media items). In one embodiment, each of the thumbnails1301-1313 may function as a checkbox and/or a button. Although the GUI1300 is illustrated using thumbnails, buttons, checkboxes, etc., onehaving ordinary skill in the art understands that other embodiments mayuse links and/or other graphical user interface controls or elements inplace of one or more of the thumbnails, buttons, checkboxes, etc. TheGUI 1300 may be presented by a media player/viewer application (e.g., a“camera roll”). The media player/viewer application may be a separateapplication or may be part of the calendar application.

Each of the thumbnails 1301-1313 illustrated in FIG. 19 may represent amedia item that is stored on the user's computing device. As illustratedin FIG. 19, the top seven thumbnails 1301-1307 may represent media items(e.g., pictures) on the user's computing device that were created onMonday. The bottom six thumbnails 1308-1313 may represent media itemsthat were created Sunday (i.e., Yesterday). The thumbnails 1301-1313 mayallow the user to select one or more media items to include in anevent/meeting for one or more calendars. For example, the thumbnails1301-1313 may allow the user to select a video of a meeting venue for anevent/meeting. In one embodiment, the user may activate (e.g., block,press, tap, tap and hold, etc.) a thumbnail to select the media itemrepresented by the thumbnail, as discussed in more detail below.

FIG. 20 is a diagram illustrating an example GUI 1400, in accordancewith some embodiments of the present disclosure. In one embodiment, theGUI 1400 may be an interface for selecting one or more media items to beincluded in and/or associated with an event/meeting. The GUI 1400 may bepresented by a media viewer/player application (e.g., an app, anapplication, a program, a software module/component, etc.) executing ona user's computing device, as discussed above. The GUI 1400 may bepresented when the user activates one or more thumbnails. The GUI 1400includes a plurality of thumbnails 1401-1413 (e.g., previews of mediaitems) and button 1420. In one embodiment, each of the thumbnails1401-1413 may function as a checkbox and/or a button. Although the GUI1400 is illustrated using thumbnails, buttons, checkboxes, etc., onehaving ordinary skill in the art understands that other embodiments mayuse links and/or other graphical user interface controls or elements inplace of one or more of the thumbnails, buttons, checkboxes, etc. TheGUI 1400 may be presented by a media player/viewer application (e.g., a“camera roll”). The media player/viewer application may be a separateapplication or may be part of the calendar application.

Each of the thumbnails 1401-1413 illustrated in FIG. 20 may represent amedia item that is stored on the user's computing device, as discussedabove. As illustrated in FIG. 20, the user has selected thumbnails 1401,1405, 1407 and 1409. This may indicate that the user wants to includethe media items represented by the thumbnails 1401, 1405, 1407 and 1409,to be included in an event/meeting that is in one or more calendars. TheGUI 1400 may allow the user to select additional media items (byactivating additional thumbnails) or by unselecting a media item (byactivating one of thumbnails 1401, 1405, 1407, or 1409). When the useris done selecting/unselecting thumbnails, the user may activate (e.g.,press, tap, click etc.) button 1420. Activating button 1420 may causethe calendar application (or webpage) to store the selected media itemson one or more servers. For example, the calendar application may storethe selected media items (represented by thumbnails 1401, 1405, 1407,and 1409) on a storage server.

FIG. 21 is a diagram illustrating an example GUI 1500, in accordancewith some embodiments of the present disclosure. In one embodiment, theGUI 1500 may be an interface for creating a new media item to beincluded in and/or associated with an event/meeting. The GUI 1500 may bepresented by a camera application (e.g., an app, an application, aprogram, a software module/component, etc.) executing on a user'scomputing device, as discussed above. The GUI 1500 may be presented whenthe user activates button 1110 illustrated in FIG. 17. The GUI 1500includes buttons 1505, 1510, 1515, 1520, and 1525. Although the GUI 1500is illustrated using buttons, one having ordinary skill in the artunderstands that other embodiments may use links and/or other graphicaluser interface controls or elements in place of one or more of thebuttons. The GUI 1500 may be presented by a camera application (e.g., acamera app) on the user device. The media player/viewer application maybe a separate application or may be part of the calendar application.

The GUI 1500 may display the images/video that are captured by thecamera and/or camera application of a user device. Activating (e.g.,pressing, clicking, tapping, etc.) button 1510 may allow a user tocapture an image (e.g., take a picture, create a media item) when thebutton 1505 is activated. Activating button 1515 may allow the user tocapture a video (e.g., take a video, create a media item) when thebutton 1505 is activated. Activating 1505 may allow a user to take apicture and/or a video, based on whether button 1510 or button 1515 isactivated. Activating button 1520 may allow the user to switch betweenusing a forward-facing camera or a rear-facing camera of the computingdevice. Activating button 1525 may allow the user to return to aprevious user interface (e.g., GUI 1100 illustrated in FIG. 17).

FIG. 22 is a diagram illustrating an example GUI 1600 according to oneor more embodiments. In one embodiment, the GUI 1600 may be an interfacefor creating a new event/meeting and/or modifying an existingevent/meeting. The GUI 1600 may be presented by a calendar application(e.g., an app, an application, a program, a software module/component,etc.) that may allow a user to create/modify events/meetings and may beused to invite other users to the event/meeting. The calendarapplication (e.g., app) may be executing/operating on a computing deviceof a user (e.g., a smartphone, a tablet computer, etc.). In anotherembodiment, the GUI 1600 may be a webpage provided/presented by acalendar platform. For example, the GUI 1600 may be presented by and/ordisplayed within a web browser when the user accesses or logs into acalendar platform via the web browser. The GUI 1600 includes variousthumbnails (including thumbnails 1605 and 1610) and buttons 1615, 1620,and 1625. Although the GUI 1600 is illustrated using buttons,thumbnails, etc., one having ordinary skill in the art understands thatother embodiments may use links and/or other graphical user interfacecontrols or elements in place of one or more of the buttons, thumbnails,etc.

The GUI 1600 may present information about an event/meeting (e.g., a“Swim Meet”) that has been created for one or more calendars. Button1615 may allow a user to specify a location (e.g., a new location) forthe event/meeting. Button 1615 may also provide information about thecurrent location of the event/meeting (e.g., the button 1615 mayindicate the address “4515 Portola Pkwy, Irvine, Calif. 92620”). Button1620 may allow a user to provide additional information (e.g., notes, anagenda, etc.) for the event/meeting. Button 1625 may indicate one ormore calendars that include the event/meeting indicated in GUI 1600.

As illustrated in FIG. 22, the GUI 1600 includes a plurality ofthumbnails. The thumbnails may represent media items that have beenassociated with the event/meeting by a user (e.g., an administrator, acreator of the event/meeting, etc.). The user may activate one of thethumbnails to view the media item represented by a correspondingthumbnail. For example, when the user activates thumbnail 1605, a mediaplayer/viewer application may be presented to the user. The mediaplayer/view application may play the movie (e.g., media item) that isrepresented by thumbnail 1605. In another example, when the useractivates thumbnail 1610, the media player/viewer may display thepicture (e.g., media item) that is represented by thumbnail 1610. In oneembodiment, the media items may be accessed from storage server (e.g., acloud storage platform) to display/present the media item to the user.For example, a video may be streamed from the storage server when theuser activates thumbnail 1605. In another example, a picture (e.g., animage) may be downloaded from the storage server when the user activatesthumbnail 1610.

FIG. 23 is a diagram illustrating an example GUI 1700 according to oneor more embodiments. In one embodiment, the GUI 1700 may be an interfaceviewing one or more messages associated with an event/meeting. The GUI1700 may be presented by a calendar application (e.g., an app, anapplication, a program, a software module/component, etc.) that mayallow a user to create/modify events/meetings and may be used to inviteother users to the event/meeting. The calendar application (e.g., app)may be executed/operated on a computing device of a user (e.g., asmartphone, a tablet computer, etc.). In another embodiment, the GUI1700 may be a webpage provided/presented by a calendar platform. Forexample, the GUI 1700 may be presented by and/or displayed within a webbrowser when the user accesses or logs into a calendar platform via theweb browser. The GUI 1700 includes button 1705, text field 1730, button1735, and messages 1710, 1715, 1520, and 1720. Although the GUI 1700 isillustrated using buttons, text fields, etc., one having ordinary skillin the art understands that other embodiments may use links and/or othergraphical user interface controls or elements in place of one or more ofthe buttons, text fields, etc.

As illustrated in FIG. 23, a user may activate (e.g., click, select,tap, etc.) button 1705. When button 1705 is activated, the GUI 1700 maypresent one or messages (e.g., messages 1710-1725) related to orassociated with an event/meeting. The messages 1710-1725 may beassociated with the event/meeting illustrated in FIG. 22 (e.g., the“Swim Meet” event/meeting). The messages 1710-1729 may be part of adiscussion related to or associated with the event/meeting. In oneembodiment, the messages 1710-1725 may be from users who are authorizedto access/view the event/meeting. In another embodiment, the messages1710-1725 may be from users who have indicated that they will attend theevent/meeting. The messages 1710-1725 may allow the users to communicateadditional information related to the event/meeting. For example, themessages 1710-1725 may allow users to coordinate when activities in theevent/meeting will occur, to coordinate transportation to theevent/meeting etc. The messages 1710-1725 may also be referred to aschat messages, chats, text messages, text, multimedia messages, etc.

In one embodiment, the GUI 1700 may present one or more additionalbuttons or other user interface elements (not illustrated in FIG. 23) toallow the user to add media items to a discussion (e.g., to write amessage that includes a media item). For example, the GUI 1700 maypresent one or more buttons similar to button 1105, 1110, and 1115illustrated in FIG. 17. Activating these buttons may cause the GUI 1700to present user interfaces similar to those illustrated in FIGS. 18-21(e.g., GUI 1200, GUI 1300, GUI 1400, GUI 1500, etc.) to allow the userto select a media item (from a computing device of the user) to be addedto a message. This may allow users to exchange messages (e.g., chatmessages) to discuss various aspects and/or information for anevent/meeting.

In one embodiment, the storage server may be separate from the calendarplatform. For example, the storage server may be part of a cloud storageplatform. In another embodiment, the storage server may be part of thecloud storage platform, as discussed above.

Additional Embodiments

In accordance with and/or in addition to the various embodiments andfeatures disclosed above, certain additional embodiments and featuresfall within the scope of the present disclosure. For example, in certainembodiments, no traditional email communications are required forcertain calendar notifications.

Calendar synchronization in accordance with embodiments disclosed hereinmay be implemented in various novel ways. For example, in certainembodiments, a single notification may be used formulti-calendar/multi-event updates; multiple calendar events may push toindividual users by single notification. Certain embodiments provide forindirect public calendar sharing. For example, a shared calendar may bemade available for anyone to access without direct invitation by thecalendar owner/manager through sharing of link or calendar ID.

Systems, devices and methods disclosed herein may be used in anypractical or desirable application or use case. As an exampleimplementation, when a calendar update is published, multiple processsteps and/or entities may be involved, such as the following possibleentities/steps: a publish calendar message object may be sent from userdevice to user calendar manager on server; on the server, a listeningservice may trigger a calendar synchronization event; an event triggerobject may be sent a synchronization manager service; a synchronizationservice module/device may push calendar update data object to otherclient devices; client devices may apply calendar update data object andreturn acknowledgement response; and/or other entities/steps.

In certain embodiments, new user setup and/or identification may beimplemented at least in part by the following steps: a new userdownloads an application to a device; a new user setup of and accountwithout email communication may be implemented. Furthermore, calendarcreation and/or updates may be implemented at least in part using one ormore of the following steps: a user creates a private calendar; the usercreates an event within the private calendar providing for calendarsynchronization; the user may download an application on another deviceand set up the same account on a second device; the user may updateevents within a private calendar on the first device and view updates onthe second device.

In certain embodiments, multi-event/multi-user calendar publication maybe implemented using one or more of the following steps: a calendarowner may create a shared calendar; the calendar owner may createmultiple events and may assign individual users to events; the calendarowner may publish the calendar; individual users may receive singlecalendar notification push to devices; the calendar owner may updateseveral events within the calendar and republish the entire calendar.

In certain embodiments public sharing of a shared calendar may beimplemented using one or more of the following steps: a calendar ownermay make a shared calendar link/identifier available to the public(e.g., via web/voice), or a subsection thereof; a non-calendar user mayobtain the calendar link/identifier and wish to join the calendar; theuser may submit the share identifier to a calendar management server,and thereby be granted access to the calendar by the calendar managementserver.

Those skilled in the art will appreciate that in some embodiments, othertypes of calendar management systems can be implemented while remainingwithin the scope of the present disclosure. In addition, the actualsteps taken in the processes discussed herein may differ from thosedescribed or shown in the figures. Depending on the embodiment, certainof the steps described above may be removed, and/or others may be added.

Conditional language used herein, such as, among others, “can,” “could,”“might,” “may,” “e.g.,” and the like, unless specifically statedotherwise, or otherwise understood within the context as used, isgenerally intended to convey that certain embodiments include, whileother embodiments do not include, certain features, elements and/orstates. Thus, such conditional language is not generally intended toimply that features, elements and/or states are in any way required forone or more embodiments or that one or more embodiments necessarilyinclude logic for deciding, with or without author input or prompting,whether these features, elements and/or states are included or are to beperformed in any particular embodiment.

While certain embodiments have been described, these embodiments havebeen presented by way of example only, and are not intended to limit thescope of protection. Indeed, the novel methods and systems describedherein may be embodied in a variety of other forms. Furthermore, variousomissions, substitutions and changes in the form of the methods andsystems described herein may be made. The accompanying claims and theirequivalents are intended to cover such forms or modifications as wouldfall within the scope and spirit of the protection. For example, thevarious components illustrated in the figures may be implemented assoftware and/or firmware on a processor, application-specific integratedcircuit (ASIC), field-programmable gate array (FPGA), or dedicatedhardware. Also, the features and attributes of the specific embodimentsdisclosed above may be combined in different ways to form additionalembodiments, all of which fall within the scope of the presentdisclosure. Although the present disclosure provides certain preferredembodiments and applications, other embodiments that are apparent tothose of ordinary skill in the art, including embodiments which do notprovide all of the features and advantages set forth herein, are alsowithin the scope of this disclosure. Accordingly, the scope of thepresent disclosure is intended to be defined only by reference to theappended claims.

All of the processes described above may be embodied in, and fullyautomated via, software code modules executed by one or more generalpurpose or special purpose computers or processors. The code modules maybe stored on any type of computer-readable medium or other computerstorage device or collection of storage devices. Some or all of themethods may alternatively be embodied in specialized computer hardware.

The various illustrative logical blocks, modules, data structures, andprocesses described herein may be implemented as electronic hardware,computer software, or combinations of both. To clearly illustrate thisinterchangeability of hardware and software, various illustrativecomponents, blocks, modules, and states have been described abovegenerally in terms of their functionality. However, while the variousmodules are illustrated separately, they may share some or all of thesame underlying logic or code. Certain of the logical blocks, modules,and processes described herein may instead be implementedmonolithically.

The various illustrative logical blocks, modules, data structures, andprocesses described herein may be implemented or performed by a machine,such as a computer, a processor, a digital signal processor (DSP), anapplication specific integrated circuit (ASIC), a field programmablegate array (FPGA) or other programmable logic device, discrete gate ortransistor logic, discrete hardware components, or any combinationthereof designed to perform the functions described herein. A processormay be a microprocessor, a controller, a microcontroller, a statemachine, combinations of the same, or the like. A processor may also beimplemented as a combination of computing devices—for example, acombination of a DSP and a microprocessor, a plurality ofmicroprocessors or processor cores, one or more graphics or streamprocessors, one or more microprocessors in conjunction with a DSP, orany other such configuration.

The blocks or states of the processes described herein may be embodieddirectly in hardware, in a software module executed by a processor, orin a combination of the two. For example, each of the processesdescribed above may also be embodied in, and fully automated by,software modules executed by one or more machines such as computers orcomputer processors. A module may reside in a computer-readable storagemedium such as RAM memory, flash memory, ROM memory, EPROM memory,EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM,memory capable of storing firmware, or any other form ofcomputer-readable storage medium. An exemplary computer-readable storagemedium can be coupled to a processor such that the processor can readinformation from, and write information to, the computer readablestorage medium. In the alternative, the computer-readable storage mediummay be integral to the processor. The processor and thecomputer-readable storage medium may reside in an ASIC.

Depending on the embodiment, certain acts, events, or functions of anyof the processes or algorithms described herein can be performed in adifferent sequence, may be added, merged, or left out altogether. Thus,in certain embodiments, not all described acts or events are necessaryfor the practice of the processes. Moreover, in certain embodiments,acts or events may be performed concurrently, e.g., throughmulti-threaded processing, interrupt processing, or via multipleprocessors or processor cores, rather than sequentially.

Example Clauses

Example A, a method of visualizing and managing data structures, themethod comprising: generating, by control circuitry of a serviceprovider, first user interface data representing a first visualrepresentation of at least a portion of a first time-based datastructure associated with a first user; transmitting, by the controlcircuitry, the first user interface data to a first device associatedwith the first user; receiving, by the control circuitry and from thefirst device, event data indicating a data-streaming event and multiplevalues to associate with the data-streaming event, the multiple valuesincluding an acquisition value; based at least in part on the eventdata: generating, by the control circuitry, event object data indicativeof the data-streaming event, the event object data including multipleparameters; associating, by the control circuitry, the multiple valueswith the multiple parameters, respectively; and storing, by the controlcircuitry, the event object data in association with the firsttime-based data structure; generating, by the control circuitry, seconduser interface data representing a second visual representation of atleast a portion of the first time-based data structure and a thirdvisual representation of at least a portion of the event object data;transmitting, by the control circuitry, the second user interface datato a second device associated with a second user; receiving, by thecontrol circuitry and from the second device, a data access request toacquire access to the data-streaming event; based at least in part onthe data access request, performing, by the control circuitry, anauthorization process to acquire access to the data-streaming event forthe acquisition value; upon authorizing the second user, associating, bythe control circuitry, at least a portion of the event object data witha second time-based data structure associated with the second user;receiving, by the control circuitry, real-time image data and anidentifier indicative of the data-streaming event; based at least inpart on the identifier, associating, by the control circuitry, thereal-time image data with the event object data; determining, by thecontrol circuitry, that the second time-based data structure isassociated with the event object data; and based at least in part on thedetermination, transmitting, by the control circuitry, the real-timeimage data to the second device.

Example B, the method of Example A, further comprising: in response tostoring the event object data in association with the first time-baseddata structure: determining that the second user has subscribed toreceive data regarding the first time-based data structure; andtransmitting, to the second device, a notification indicative of thedata-streaming event.

Example C, the method of Example A or B, further comprising: receiving,while the real-time image data is being displayed via the second device,feedback data for the real-time image data, the feedback data beingindicative of how the real-time image data is being received;associating the feedback data with the real-time image data; andtransmitting at least a portion of the feedback data to the firstdevice.

Example D, the method of any of Examples A-C, further comprising:generating indicator data representing an indicator for the third visualrepresentation indicative of the event object data being associated witha real-time event; and transmitting the indicator data to the seconddevice.

Example E, the method of any of Examples A-D, further comprising:analyzing a plurality of data structures associated with a plurality ofusers, respectively; based at least in part on the analysis, generatingmetric data indicative of a most available time period within theplurality of data structures, the plurality of users including thesecond user; and transmitting the metric data to the first device.

Example F, the method of any of Examples A-E, further comprising:generating metric data indicative of a total number of acquisitions ofthe data-streaming event; and transmitting the metric data to the firstdevice.

Example G, the method of any of Examples A-F, further comprising:generating metric data indicative of a total number of acquisitions ofevents associated with the first user; and transmitting the metric datato the first device.

Example H, a system comprising: control circuitry; and memorycommunicatively coupled to the control circuitry and storing executableinstructions that, when executed by the control circuitry, cause thecontrol circuitry to perform operations comprising: generating firstuser interface data representing a first visual representation of atleast a portion of a first time-based data structure associated with afirst user, the first time-based data structure including a plurality ofdata slots associated with a plurality of time periods, respectively;sending the first user interface data to a first device associated withthe first user; receiving, from the first device, event data indicatinga data-streaming event and multiple values to associate with thedata-streaming event, the multiple values including an acquisitionvalue; generating event object data indicative of the data-streamingevent, the event object data including the multiple values; storing theevent object data in association with the first time-based datastructure; generating second user interface data representing a secondvisual representation of at least a portion of the first time-based datastructure and a third visual representation of at least a portion of theevent object data; sending the second user interface data to a seconddevice associated with a second user; receiving, from the second device,a data access request to acquire access to the data-streaming event;based at least in part on the data access request, performing anauthorization process to acquire access to the data-streaming event forthe acquisition value; associating at least a portion of the eventobject data with a second time-based data structure associated with thesecond user; receiving real-time image data; and sending the real-timeimage data to the second device or a third device associated with thesecond user.

Example I, the system of Example H, wherein the operations furthercomprise: in response to storing the event object data in associationwith the first time-based data structure: determining that the seconduser has subscribed to receive data regarding the first time-based datastructure; and causing display of, via the second device or a thirddevice associated with the second user, a notification indicative of thedata-streaming event.

Example J, the system of Example H or I, wherein the operations furthercomprise: receiving feedback data for the real-time image data, thefeedback data being indicative of how the real-time data is beingreceived; and sending at least a portion of the feedback data to thefirst device or a fourth device associated with the first user.

Example K, the system of any of Examples H-J, wherein the operationsfurther comprise: generating indicator data representing an indicatorfor the third visual representation indicative of the event object databeing associated with a real-time event; and sending the indicator datato the second device.

Example L, the system of any of Examples H-K, wherein the operationsfurther comprise: analyzing a plurality of data structures associatedwith a plurality of users, respectively; based at least in part on theanalysis, generating metric data indicative of a most available timeperiod within the plurality of data structures, the plurality of usersincluding the second user; and sending the metric data to the firstdevice or a fourth device associated with the first user.

Example M, the system of any of Examples H-L, wherein the operationsfurther comprise: generating metric data indicative of a total number ofacquisitions of the data-streaming event; and sending the metric data tothe first device or a fourth device associated with the first user.

Example N, the system of any of Examples H-M, wherein the operationsfurther comprise: generating metric data indicative of a total number ofacquisitions of events associated with the first user; and sending themetric data to the first device or a fourth device associated with thefirst user.

Example O, one or more non-transitory computer-readable media storingcomputer-executable instructions that, when executed by controlcircuitry, cause the control circuitry to perform operations comprising:causing display of a first user interface that includes a first visualrepresentation of at least a portion of a first time-based datastructure associated with a first user, the first time-based datastructure including a plurality of data slots associated with aplurality of time periods, respectively; receiving event data indicatinga data-streaming event and multiple values to associate with thedata-streaming event, the multiple values including an acquisitionvalue; generating event object data indicative of the data-streamingevent, the event object data including the multiple values; storing theevent object data in association with the first time-based datastructure; causing display of a second user interface that includes asecond visual representation of at least a portion of the firsttime-based data structure and a third visual representation of at leasta portion of the event object data; receiving a data access request toacquire access to the data-streaming event; based at least in part onthe data access request, performing an authorization process to acquireaccess to the data-streaming event for the acquisition value;associating at least a portion of the event object data with a secondtime-based data structure associated with the second user; receivingreal-time image data and an identifier indicative of the data-streamingevent; and based at least in part on the identifier, causing display ofthe real-time image data via the second user interface.

Example P, the one or more non-transitory computer-readable media ofExample O, wherein the operations further comprise: in response tostoring the event object data in association with the first time-baseddata structure: determining that the second user has subscribed toreceive data regarding the first time-based data structure; and causingdisplay of, via the second user interface, a notification indicative ofthe data-streaming event.

Example Q, the one or more non-transitory computer-readable media ofExample O or P, wherein the operations further comprise: receivingfeedback data for the real-time image data, the feedback data beingindicative of how the real-time data is being received; and causingdisplay of, via the first user interface at least a portion of thefeedback data.

Example R, the one or more non-transitory computer-readable media of anyof Examples O-Q, wherein the operations further comprise: causingdisplay of, via the second user interface, an indicator indicative ofthe event object data being associated with a real-time event.

Example S, the one or more non-transitory computer-readable media of anyof Examples O-R, wherein the operations further comprise: analyzing aplurality of data structures associated with a plurality of users,respectively; identifying a most available time period within theplurality of data structures based at least in part on the analysis, theplurality of users including the second user; and causing display of anotification indicative of the most available time period.

Example T, the one or more non-transitory computer-readable media of anyof Examples O-S, wherein the operations further comprise: determining acollective acquisition value associated with at least one of (i)acquisitions of the data-streaming event or (ii) acquisitions of thedata-streaming event and a plurality of other data-streaming eventsassociated with the first user; and causing display of the collectiveacquisition value.

Example AA, a calendar management device comprising: a non-volatile datastorage medium; a user input interface; a wireless transmitter; and acontroller configured to: generate a calendar object configured to storeunique calendar user identifiers identifying users associated with thecalendar object and one or more event objects, each of the one or moreevent objects comprising an authorization value; generate a calendarshare identifier associated with the calendar object; store the calendarobject in the non-volatile data storage medium; cause the calendar shareidentifier to be provided to each of a plurality of calendar users;receive user input via the user input interface, the user inputindicating a new event associated with the calendar object; in responseto the user input: determine an authorization level of the new eventbased on the user input; generate a calendar event object comprising theauthorization level; and automatically send a publication request to aremote server over a network using the wireless transmitter; receivemedia data indicative of one or more media items associated with the newevent; and associate the media data with the event object.

Example BB, the calendar management device of Example AA, wherein thecontroller is further configured to: store the one or more media itemson a storage server.

Example CC, the calendar management device of Example AA or BB, whereinthe media data comprises links to the one or more media items.

Example DD, the calendar management device of any of Examples AA-CC,wherein the controller is further configured to: receive discussion dataindicative of one or more messages associated with the new event; andassociate the discussion data with the event object.

Example EE, the calendar management device of Example DD, wherein thediscussion data comprises one or more messages from one or more usersauthorized to access the new event.

Example FF, the calendar management device of Example EE, wherein thediscussion data further comprises media data indicative of one or moremedia items associated with the one or more messages.

Example GG, the calendar management device of any of Examples AA-FF,wherein said sending the publication request directs the remote serverto determine a subset of the plurality of calendar users based on theauthorization level and to send the event object to each of the subsetof the plurality of calendar users.

Example HEI, the calendar management device of any of Examples AA-GG,wherein the controller is further configured to receive anacknowledgement response from each of the plurality of calendar users inresponse to said causing the calendar share identifier to be provided toeach of the plurality of calendar users.

Example II, the calendar management device of Example HH, wherein thecontroller is further configured to, in response to receiving theacknowledgment responses, store unique user identifiers associated witheach of the plurality of calendar users in the non-volatile data storagemedia as part of the calendar object.

Example JJ, the calendar management device of any of Examples AA-II,wherein the controller is further configured to transmit the calendarobject and the calendar share identifier to the remote server over thenetwork using the wireless transmitter.

Example KK, the calendar management device of Example JJ, wherein whenone of the plurality of calendar users provides the share identifier tothe remote server, said providing the share identifier directs theremote server to provide a copy of the calendar object to the one of theplurality of calendar users.

Example LL, a method for managing calendar data using a calendarmanagement device, the method comprising: generating a calendar objectconfigured to store unique calendar user identifiers identifying usersassociated with the calendar object and one or more event objects, eachof the one or more event objects comprising an authorization value;generating a calendar share identifier associated with the calendarobject; storing the calendar object in a non-volatile data storagemedium; causing the calendar share identifier to be provided to each ofa plurality of calendar users; receiving user input via a user inputinterface, the user input indicating a new event associated with thecalendar object; in response to said receiving the user input:determining an authorization level of the new event based on the userinput; generating a calendar event object comprising the authorizationlevel; and automatically sending a publication request to a remoteserver over a network using a wireless transmitter; receiving media dataindicative of one or more media items associated with the new event; andassociating the media data with the event object.

Example MM, the method of Example LL, further comprising: storing theone or more media items on a storage server.

Example NN, the calendar management device of Example LL or MM, whereinthe media data comprises links to the one or more media items.

Example OO, the method of any of Examples LL-NN, further comprising:receiving discussion data indicative of one or more messages associatedwith the new event; and associating the discussion data with the eventobject.

Example PP, the method of any of Examples LL-OO, wherein said sendingthe publication request directs the remote server to determine a subsetof the plurality of calendar users based on the authorization level andto send the event object to each of the subset of the plurality ofcalendar users.

Example QQ, a calendar management system comprising: a master schedulerdevice; a plurality of calendar user devices; and a remote calendarmanagement server configured to be communicatively coupled to the masterscheduler device and the one or more recipient devices over a network;wherein the master scheduler device is configured to: generate acalendar object configured to store unique calendar user identifiersidentifying users associated with the calendar object and one or moreevent objects, each of the one or more event objects comprising anauthorization value; generate a calendar share identifier associatedwith the calendar object; store the calendar object in a non-volatiledata storage medium; cause the calendar share identifier to be providedto the plurality of calendar user devices; receive user input via a userinput interface, the user input indicating a new event associated withthe calendar object; in response to said receiving the user input:determine an authorization level of the new event based on the userinput; generate a calendar event object comprising the authorizationlevel; and automatically send a publication request to a remote serverover a network using the wireless transmitter; receive media dataindicative of one or more media items associated with the new event; andassociate the media data with the event object.

Example RR, the calendar management system of Example QQ, wherein themaster scheduler device is further configured to: store the one or moremedia items on a storage server.

Example SS, the calendar management system of Example QQ or RR, whereinthe master scheduler device is further configured to: receive discussiondata indicative of one or more messages associated with the new event;and associate the discussion data with the event object.

Example TT, the calendar management system of any of Examples QQ-SS,wherein said sending the publication request directs the remote calendarmanagement server to determine a subset of the plurality of calendaruser devices based on the authorization level and to send the eventobject to each of the subset of the plurality of calendar user devices.

What is claimed is:
 1. A method of visualizing and managing datastructures, the method comprising: generating, by control circuitry of aservice provider, first user interface data representing a first visualrepresentation of at least a portion of a first time-based datastructure associated with a first user; transmitting, by the controlcircuitry, the first user interface data to a first device associatedwith the first user; receiving, by the control circuitry and from thefirst device, event data indicating a data-streaming event and multiplevalues to associate with the data-streaming event, the multiple valuesincluding an acquisition value; based at least in part on the eventdata: generating, by the control circuitry, event object data indicativeof the data-streaming event, the event object data including multipleparameters; associating, by the control circuitry, the multiple valueswith the multiple parameters, respectively; and storing, by the controlcircuitry, the event object data in association with the firsttime-based data structure; generating, by the control circuitry, seconduser interface data representing a second visual representation of atleast a portion of the first time-based data structure and a thirdvisual representation of at least a portion of the event object data;transmitting, by the control circuitry, the second user interface datato a second device associated with a second user; receiving, by thecontrol circuitry and from the second device, a data access request toacquire access to the data-streaming event; based at least in part onthe data access request, performing, by the control circuitry, anauthorization process to acquire access to the data-streaming event forthe acquisition value; upon authorizing the second user, associating, bythe control circuitry, at least a portion of the event object data witha second time-based data structure associated with the second user;receiving, by the control circuitry, real-time image data and anidentifier indicative of the data-streaming event; based at least inpart on the identifier, associating, by the control circuitry, thereal-time image data with the event object data; determining, by thecontrol circuitry, that the second time-based data structure isassociated with the event object data; and based at least in part on thedetermination, transmitting, by the control circuitry, the real-timeimage data to the second device.
 2. The method of claim 1, furthercomprising: in response to storing the event object data in associationwith the first time-based data structure: determining that the seconduser has subscribed to receive data regarding the first time-based datastructure; and transmitting, to the second device, a notificationindicative of the data-streaming event.
 3. The method of claim 1,further comprising: receiving, while the real-time image data is beingdisplayed via the second device, feedback data for the real-time imagedata, the feedback data being indicative of how the real-time image datais being received; associating the feedback data with the real-timeimage data; and transmitting at least a portion of the feedback data tothe first device.
 4. The method of claim 1, further comprising:generating indicator data representing an indicator for the third visualrepresentation indicative of the event object data being associated witha real-time event; and transmitting the indicator data to the seconddevice.
 5. The method of claim 1, further comprising: analyzing aplurality of data structures associated with a plurality of users,respectively; based at least in part on the analysis, generating metricdata indicative of a most available time period within the plurality ofdata structures, the plurality of users including the second user; andtransmitting the metric data to the first device.
 6. The method of claim1, further comprising: generating metric data indicative of a totalnumber of acquisitions of the data-streaming event; and transmitting themetric data to the first device.
 7. The method of claim 1, furthercomprising: generating metric data indicative of a total number ofacquisitions of events associated with the first user; and transmittingthe metric data to the first device.
 8. A system comprising: controlcircuitry; and memory communicatively coupled to the control circuitryand storing executable instructions that, when executed by the controlcircuitry, cause the control circuitry to perform operations comprising:generating first user interface data representing a first visualrepresentation of at least a portion of a first time-based datastructure associated with a first user, the first time-based datastructure including a plurality of data slots associated with aplurality of time periods, respectively; sending the first userinterface data to a first device associated with the first user;receiving, from the first device, event data indicating a data-streamingevent and multiple values to associate with the data-streaming event,the multiple values including an acquisition value; generating eventobject data indicative of the data-streaming event, the event objectdata including the multiple values; storing the event object data inassociation with the first time-based data structure; generating seconduser interface data representing a second visual representation of atleast a portion of the first time-based data structure and a thirdvisual representation of at least a portion of the event object data;sending the second user interface data to a second device associatedwith a second user; receiving, from the second device, a data accessrequest to acquire access to the data-streaming event; based at least inpart on the data access request, performing an authorization process toacquire access to the data-streaming event for the acquisition value;associating at least a portion of the event object data with a secondtime-based data structure associated with the second user; receivingreal-time image data; and sending the real-time image data to the seconddevice or a third device associated with the second user.
 9. The systemof claim 8, wherein the operations further comprise: in response tostoring the event object data in association with the first time-baseddata structure: determining that the second user has subscribed toreceive data regarding the first time-based data structure; and causingdisplay of, via the second device or a third device associated with thesecond user, a notification indicative of the data-streaming event. 10.The system of claim 8, wherein the operations further comprise:receiving feedback data for the real-time image data, the feedback databeing indicative of how the real-time data is being received; andsending at least a portion of the feedback data to the first device or afourth device associated with the first user.
 11. The system of claim 8,wherein the operations further comprise: generating indicator datarepresenting an indicator for the third visual representation indicativeof the event object data being associated with a real-time event; andsending the indicator data to the second device.
 12. The system of claim8, wherein the operations further comprise: analyzing a plurality ofdata structures associated with a plurality of users, respectively;based at least in part on the analysis, generating metric dataindicative of a most available time period within the plurality of datastructures, the plurality of users including the second user; andsending the metric data to the first device or a fourth deviceassociated with the first user.
 13. The system of claim 8, wherein theoperations further comprise: generating metric data indicative of atotal number of acquisitions of the data-streaming event; and sendingthe metric data to the first device or a fourth device associated withthe first user.
 14. The system of claim 8, wherein the operationsfurther comprise: generating metric data indicative of a total number ofacquisitions of events associated with the first user; and sending themetric data to the first device or a fourth device associated with thefirst user.
 15. One or more non-transitory computer-readable mediastoring computer-executable instructions that, when executed by controlcircuitry, cause the control circuitry to perform operations comprising:causing display of a first user interface that includes a first visualrepresentation of at least a portion of a first time-based datastructure associated with a first user, the first time-based datastructure including a plurality of data slots associated with aplurality of time periods, respectively; receiving event data indicatinga data-streaming event and multiple values to associate with thedata-streaming event, the multiple values including an acquisitionvalue; generating event object data indicative of the data-streamingevent, the event object data including the multiple values; storing theevent object data in association with the first time-based datastructure; causing display of a second user interface that includes asecond visual representation of at least a portion of the firsttime-based data structure and a third visual representation of at leasta portion of the event object data; receiving a data access request toacquire access to the data-streaming event; based at least in part onthe data access request, performing an authorization process to acquireaccess to the data-streaming event for the acquisition value;associating at least a portion of the event object data with a secondtime-based data structure associated with the second user; receivingreal-time image data and an identifier indicative of the data-streamingevent; and based at least in part on the identifier, causing display ofthe real-time image data via the second user interface.
 16. The one ormore non-transitory computer-readable media of claim 15, wherein theoperations further comprise: in response to storing the event objectdata in association with the first time-based data structure:determining that the second user has subscribed to receive dataregarding the first time-based data structure; and causing display of,via the second user interface, a notification indicative of thedata-streaming event.
 17. The one or more non-transitorycomputer-readable media of claim 15, wherein the operations furthercomprise: receiving feedback data for the real-time image data, thefeedback data being indicative of how the real-time data is beingreceived; and causing display of, via the first user interface at leasta portion of the feedback data.
 18. The one or more non-transitorycomputer-readable media of claim 15, wherein the operations furthercomprise: causing display of, via the second user interface, anindicator indicative of the event object data being associated with areal-time event.
 19. The one or more non-transitory computer-readablemedia of claim 15, wherein the operations further comprise: analyzing aplurality of data structures associated with a plurality of users,respectively; identifying a most available time period within theplurality of data structures based at least in part on the analysis, theplurality of users including the second user; and causing display of anotification indicative of the most available time period.
 20. The oneor more non-transitory computer-readable media of claim 15, wherein theoperations further comprise: determining a collective acquisition valueassociated with at least one of (i) acquisitions of the data-streamingevent or (ii) acquisitions of the data-streaming event and a pluralityof other data-streaming events associated with the first user; andcausing display of the collective acquisition value.